【发布时间】:2011-08-04 08:36:29
【问题描述】:
我正在使用 SHDocVw DLL 从 C# 打开和操作 Internet Explorer 实例。我需要激活几个文本框的 onkeyup 事件。这是我使用的代码:
dynamic userNameTextBox=doc.getElementById(5749).getElementsByTagName("input")[0];
userNameTextBox.value=userName;
userNameTextBox.onkeyup.apply(userNameTextBox);
dynamic passwordTextBox=doc.getElementById(5750).getElementsByTagName("input")[0];
passwordTextBox.value=password;
passwordTextBox.onkeyup.apply(passwordTextBox);
这适用于第一次调用“apply”,但第二次调用会产生错误:“System.MissingMemberException: Error while invoking apply.”。如果我使用“调用”而不是“应用”,也会出现此问题。但是,如果我将其中一个事件调用函数从“应用”更改为“调用”,它就会起作用 - 但是如果我尝试在我的程序的同一实例中再次调用此代码,它会引发相同的异常。 简而言之 - 我不能多次使用“应用”或“呼叫”,除非我重新启动我的程序。
此问题仅在 Windows XP+IE8 中出现。如果我在 Windows7+IE9 中尝试,我可以根据需要多次使用“应用”/“调用”。
我可以做些什么来让我多次使用“apply”/“call”,或者以任何其他方式调用事件?
【问题讨论】:
标签: c# javascript events internet-explorer-8 shdocvw