【问题标题】:Call ActiveX method from JavaScript in IE9在 IE9 中从 JavaScript 调用 ActiveX 方法
【发布时间】:2011-01-26 12:48:07
【问题描述】:

我在页面上有一个 activex 控件。通常,要调用它的方法,我会使用这样的东西:

document.getElementById('activexControlID').MethodName(2) = 'value string';

我知道,它可能看起来很奇怪,但它在 IE6、IE7、IE8 中运行良好。不幸的是,它在 IE9 中不起作用。它会抛出错误“无法分配给函数结果”。

我已经试过了:

document.getElementById('activexControlID').MethodName[2] = 'value string';
// and
document.getElementById('activexControlID').MethodName(2, 'value string');

但没有运气。

更新

表达式document.getElementById('activexControlID').MethodName(2) = 'value string'; 不假定返回值。它就像一个二传手。毕竟我以后可以用代码var value = document.getElementById('activexControlID').MethodName(2);得到它,而且我可以在IE9中得到它的值。但是不能设置。

我不知道它在activex控件内部是怎么实现的,但是它类似于数组,只是使用()而不是[]。再一次,它适用于以前版本的 IE。

更新 2

在 IE9 中看起来像 bug。希望会解决。

【问题讨论】:

  • .MethodName(2) 应该返回什么?
  • 不要在 IE9 中使用 activeX 控件。 IE9 具有足够的跨浏览器兼容性,可以使用真正的 Web 应用程序。
  • 控件运行在中安全还是高安全?可以禁用脚本,然后针对 ActiveX 控件。检查您的设置... ;)
  • 人们还在使用 ActiveX?人们还在使用 IE?
  • 听起来您正在尝试使用索引器方法?什么是控制?它是用什么实现的?如果使用 F12 开发者工具将页面设置为 IE8 模式,页面是否正常工作?

标签: javascript activex internet-explorer-9


【解决方案1】:

错误已修复,代码

document.getElementById('activexControlID').MethodName(2) = 'some value';

现在可以在 IE9 RC1 中使用。

【讨论】:

    猜你喜欢
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多