场景: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中的结果(注意在控制台中省略了该消息):
我找到了解决方法。这似乎是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版本可能会解决该问题。