小编典典

防止IE中出现“ SCRIPT5:访问被拒绝”错误

ajax

场景:A.com上的页面A具有一个包含B.com上的页面B的IFrame。网页B使用jQuery的1.10.1和它 不会 需要页次A.沟通

不管这个事实如何,jQuery在IE9和IE10中都会生成“
SCRIPT5:访问被拒绝”。错误,并且似乎根本不执行任何jQuery。我不需要跨域通信,AJAX请求等,但是我确实需要jQuery来加载和执行B页中没有错误。

有没有办法防止此错误在IE9和IE10中出现(并阻止代码执行)?(仅供参考,其他浏览器同样会产生“访问被拒绝”错误,但它们不会妨碍代码执行)


更新:

jsFiddle:http :
//jsfiddle.net/86q5k/4/

主机页面的内容是(来自jsFiddle):

<iframe src="http://endorkins.com/test-iframe.html"></iframe>

iFramed页面的内容为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>

    <script type="text/javascript">
        $(document).ready(function() {
            console.log('Hello!  Congratulations.  Your browser is neat, and doesn\'t sniff glue! (http://bit.ly/12QTvTT)');
        });
    </script>
</head>
    <body>
    </body>
</html>

在Chrome中显示结果(请注意控制台中的消息): 在此处输入图片说明

IE 9.0.8112中的结果(注意在控制台中省略了该消息):

在此处输入图片说明


阅读 858

收藏
2020-07-26

共1个答案

小编典典

我找到了解决方法。这似乎是jQuery 1.10.1中的错误(“功能”?)。使用jQuery 1.10.0,该错误不再发生:

http://jsfiddle.net/86q5k/5/

<iframe src="http://endorkins.com/test-iframe-1.10.0.html"></iframe>

奇怪。很奇怪。如果有人知道为什么在1.10.1中发生这种情况的原因,以及如何解决它,我(以及全球的jQuery奴才)肯定会很感兴趣!:)


更新:看起来这是一个合法的jQuery 1.10.1错误:http :
//bugs.jquery.com/ticket/13980


更新:根据@ emanuele-greco,此问题已在1.10.2及更高版本中修复。因此,升级您的jQuery版本可能会解决该问题。

2020-07-26