2009-10-07 34 views
2

我得到了一个使用jQuery,jQuery工具和一些手工JS运行的图形增强的网站。虽然它在FF,Safari和Chrome,IE块脚本执行运行平稳:IE8在什么情况下阻止Javascript以及如何避免它?

alt text

没有什么特别的这个代码不是,比方说,在Netvibes更危险。

为什么还要谈论activeX?我正在使用JS。

我该如何预防?我不希望我的用户点击“我允许该网站”工作。这就像是把一个巨大的红色绝对DIV读数“活得快,永不回来”。

+4

如果您通过文件系统(例如'file:/// C:/ example.html')访问页面,而不是Web服务器(例如'http:// server/example.html')。你能排除这种可能吗? –

+0

上帝,把它写成答案。我测试它。如果是这样,那将是SO历史上最快接受的答案。 –

+0

他甚至没有把它写成答案:但他是对的。 – jakeisonline

回答

7

正如Ken Browning在对您的问题发表评论时所说的,当本地页面位于高安全区域时,此警报发生在JavaScript上。

如果有人将Internet作为高安全区域,则会弹出警告。

您可以将本地主机添加到Trusted Sites Zone

+3

澄清:IE默认本地文件为“高安全性”,因为很容易让某人下载文件,然后在本地机器上打开它,从而使病毒和网络钓鱼更容易。 默认情况下,'Internet'不是高安全区域,因此JS通常不会被阻止。如果用户将'互联网'设置为高安全区域,任何带JS的页面将始终显示该消息并阻止JS/ActiveX。 – jakeisonline

+0

就是这样!我等了一会儿,如果肯想要接受,因为他应该有“接受” –

+0

它确定,我会说同样的事情,但他只是打我:) – voyager

8

js无法访问文件系统,那么有什么意义呢?

事实上,JS可以传统上从我的电脑区域运行一些坏东西,就像安装ActiveX对象一样。很多过去的IE漏洞利用这个来利用文件系统访问进入任意代码访问。

因此,面对这个问题,微软决定解决这个问题,而不是简单地通过删除我的电脑区域 - 哦不,这太容易了 - 但增加了一个额外的复杂层。因此,默认情况下,Internet Explorer在锁定文件系统中的内容时获得了一个选项,同时允许其他使用嵌入式WebBrowser控件的应用程序像以前一样继续,理由是某些应用程序可能依赖于其内部HTML中的松散设置接口。

(他们是不是真的,在消费领域,但我们永远不知道在定制企业应用世界可能存在什么样的阴影纠缠的。)

IE的尴尬遭到黑客攻击所有的时间后, ,通过使文件系统页面的锁定设置比来自Intenet的普通网页严格得多,MS过度补偿。所以你不能从文件系统的文件中运行JavaScript,因为没有特别好的理由。

在这一点上,网络作者嘶嘶作响,所以MS回应并没有通过消除过度锁定 - 哦不,这太容易了 - 但增加了一个额外的复杂层。所以,现在你可以简单地在你的文件的顶部放置走出我的电脑区:

<!-- saved from url=(0014)about:internet --> 

这神秘的咒语被称为Mark of the Web。最后的换行符必须是一个Windows CRLF,如果您使用简单的LF行结束符,那么该CRLF很适合您。包含这个字符串可以让你进入JScript可以正常工作的Internet区域,但你没有其他的特殊权限。

有趣的是,从那时起,我的计算机区域中的正常安全设置已经被收紧,因此它与默认的Internet区域几乎相同。所以最终的结果与他们刚刚摆脱血腥的“我的电脑区域”一样,只是为用户带来了许多额外的复杂情况,并给网络作者带来了麻烦。

非常感谢微软。

+0

http://blogs.msdn.com/b/ieinternals/archive/2011/03/23/understanding-local-machine-zone-lockdown-restricted-this-webpage-from-running-scripts-or-activex-controls的.aspx –

相关问题