【发布时间】: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