场景:A.com上的页面A在B.com上有一个包含页面B的IFrame.网页B使用jQuery的1.10.1和它不会需要页次A.沟通
无论如何,在IE9和IE10中,jQuery会生成"SCRIPT5:访问被拒绝".错误,似乎拒绝执行任何jQuery.我不需要跨域通信,AJAX请求等,但我确实需要在页面B中加载和执行jQuery而不会出错.
有没有办法防止IE9和IE10中出现此错误(并禁止执行代码)?(仅供参考,其他浏览器类似地生成"拒绝访问"错误,但它们不会妨碍代码执行)
更新:
jsFiddle:http://jsfiddle.net/86q5k/4/
主页的内容是(来自jsFiddle):
<iframe src="http://endorkins.com/test-iframe.html"></iframe>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
Chrome中的结果(请注意控制台中的消息):

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

我正在尝试使用Google登录网站(https://developers.google.com/identity/sign-in/web/)并注意到我的解决方案无法在Internet Explorer 11中使用.要尝试消除尽可能多的内容尽可能的因素,我根据Google提供的示例代码创建了一个简单的测试用例.
我已经在我的Windows 7 PC上的Chrome,Mac上的Chrome,Mac上的Safari,Mac上的Firefox和iPhone上的Safari上测试了它.它适用于所有这些(例如,当我点击登录按钮并选择/输入我的Google帐户时,它返回到页面,按钮显示,"登录").
但是,它不适用于PC上的Internet Explorer 11,或者奇怪的是,适用于iOS的Chrome.单击该按钮后,将打开一个窗口以允许我选择我的Google帐户,但在进行选择后,窗口将关闭并返回到页面,其中仍有一个按钮仍然显示"登录".
以下是示例代码:
<html>
<head>
<meta name="google-signin-client_id" content="61023618497-vqfbod57f26ncjl9d6firk3t09ve4tt3.apps.googleusercontent.com">
<script src="https://apis.google.com/js/platform.js" async defer></script>
</head>
<body>
<div class="g-signin2"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
关于可能发生的事情的任何想法?我已经四处寻找并且没有找到任何解决方案.
一个想法是将"accounts.google.com"添加到IE的可信站点.这没用.我也尝试通过https而不是http来访问该页面.这也没有什么不同.还有什么我应该尝试的吗?
javascript internet-explorer google-openid google-oauth google-signin