检测当前的Internet Explorer安全区域
-
05-07-2019 - |
题
是否有任何以编程方式确定Internet Explorer当前安全区域设置的方法?
我想知道我的网站何时会因为IE安全策略而阻止XMLHttpRequest ActiveX控件,但在网站实际尝试创建它之前会导致黄色条显示在顶部(说“To”为了保护您的安全,Internet Explorer已限制此网页运行可以访问您计算机的脚本或ActiveX控件。“)
感谢。
解决方案
注意:我无法删除已接受的答案,但您可能会发现此答案很有用一>
原始答案:
JavaScript中没有句柄来检测IE使用的安全区域。
为了做你需要做的事,你可以检查document.location并从中确定安全区。
其他提示
在IE7中,您可以使用以下JavaScript来了解您的网站是否可信:
window.status = "test";
if (window.status == "test")
alert("Trusted, or local intranet");
else
alert("Not trusted, or internet");
这是基于以下事实:在IE7及更高版本中,脚本无法再通过Internet和受限区域中的window.status方法设置状态栏文本。请参阅 Internet Explorer 7发行说明
安全区无关紧要,因为Windows用户可以自行确定哪个协议由哪个区域处理。例如,我将整个http和整个https区域添加到可信站点区域(区域2)。这是通过密钥
完成的HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\ProtocolDefaults
您可以通过javascript检查document.protocol,但这对您有什么帮助?
if (document.protocol == "HTTP (HyperText Transfer-Protokoll)")
您认为它是互联网区域,但在我的计算机上,它是受信任的区域,具有自己的个人安全设置。它表示jscript不允许您获取每个区域的各个安全设置值。
可以在没有那个愚蠢的黄色条的情况下执行activex对象,但是你需要将com对象guids添加到safe com对象列表中。这是通过注册表完成的。对于大多数对象,默认是不安全的,除了一些愚蠢无用的垃圾对象,如flash activex,wmp activex和stuff
我想知道我的网站何时会因IE安全策略而阻止XMLHttpRequest ActiveX控件
即使您确实知道自己所在的区域也是如此,因为您无法读取每个区域的设置,并且从IE6SP2开始,还有更多影响ActiveX的设置,这些设置无法在区域基础。 (IE7具有更多特定于控件的设置。)
我知道没有办法推测性地创建XMLHttpRequest并避免使用黄色条,只缺少使用原生的‘新的XMLHttpRequest()’对象,这使你IE6不兼容。