我有一个HTML + JS页面,它使用以下代码调用ActiveX控件
<object id="somecomp" type="application/x-somecomps-associated-mime-type">
</object>
有一个javascript使用以下代码调用ActiveX上的方法
var myObj = document.getElementById('somecomp');
ret = myObj.somemethod(strInput);
如果在我的本地桌面上c:\something\my.html
托管此页面,&amp;在IE9上打开此页面,我收到警告
Internet Explorer restricted this webpage from running scripts
or ActiveX controls
还有一个显示[ Allow Blocked content]
的按钮。如果我单击此按钮,则活动运行正常。
但是,如果我在远程IIS服务器上托管此页面并以http://some_ip_address/my.html
打开该页面,那么我根本不会收到此警告。控件未初始化。 (myObj
不为空 - 但是当调用somemethod
时,IE崩溃了)
如果我将http://ipaddress
放入我信任的网站,那么我就不会收到警告,而且activex也能正常运行。
现在,即使网站位于Internet区域(即不在受信任的站点中),我也需要这样做。 IE9中有很多与ActiveX相关的安全设置。有没有一种简单的方法可以找出我需要调整哪一个 - 而不是一个一个地尝试。
答案 0 :(得分:1)
你走了。确切的设置取决于ActiveX控件是否被标记为可安全编写脚本,您仍然需要使用两个集来解决这个问题。此外,控件可能足够智能以检查其运行的安全区域,并且仅限于特定区域(例如,本地或可信),或甚至限于特定域/站点。在这种情况下,您必须将您的网站(或网址)添加到该特定区域,但如果控件为domain-bound,您可能仍然不幸。