0

我有一个 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,并在 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 相关的安全设置。有没有一种简单的方法可以找出我需要调整的那个 - 而不是一个一个地尝试。

4

1 回答 1

1

干得好。确切的设置取决于 ActiveX 控件是否被标记为安全的脚本,您仍然需要使用这两个设置来解决这个问题。此外,该控件可能足够智能以检查其运行的安全区域,并将其自身限制在特定区域(例如,本地或受信任),甚至特定域/站点。在这种情况下,您必须将您的网站(或 URL)添加到该特定区域,但如果控件是domain-bound ,您可能仍然不走运。

在此处输入图像描述

于 2013-09-24T11:19:26.803 回答