不能使用“应用”'或“;call"函数不止一次

本文关键字:call quot 函数 不止一次 应用 不能 | 更新日期: 2023-09-27 18:04:17

我正在使用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:调用apply时出错。如果我使用"call"而不是"apply",也会出现这个问题。但是,如果我将其中一个事件调用函数从"apply"更改为"call",那么它就可以工作-但是如果我尝试在我的程序的同一实例中再次调用此代码,它会抛出相同的异常。总之,我不能使用"apply"或"call"超过一次,除非我重新启动我的程序。

此问题仅在Windows XP+IE8中出现。如果我在Windows7+IE9中尝试,我可以随心所欲地使用"apply"/"call"。

是否有一些我可以做的,将允许我使用"应用"/"调用"不止一次,或以任何其他方式调用事件?

不能使用“应用”'或“;call"函数不止一次

OK,我通过从命令行(AKA "Navigate")通过JavaScript调用事件管理了一个解决方案,但我仍然认为应该有一个基于COM(互操作?)的解决方案来解决这个问题…