【问题标题】:Can't use "apply" or "call" functions more than once不能多次使用“应用”或“调用”功能
【发布时间】: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


    【解决方案1】:

    好的,我通过从命令行(又名“导航”)通过 JavaScript 调用事件来管理解决方法,但我仍然认为应该有一个基于 COM(互操作?)的解决方案...

    【讨论】:

      猜你喜欢
      • 2023-01-10
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      相关资源
      最近更新 更多