3

我在一个页面上有 4 个 iframe,当每个 iframe 加载时,我都将它们src设置为""(空)。单击页面集中的不同链接将src使用 jQuery 指向不同的 URL。这在 FF、Chrome、Safari 等中运行良好,但 IE 给了我:

" Permission Denied - jquery.js?1350498802, line 103 character 430"

从我发现这是因为如果一个安全特性 IE 来防止 XSS 攻击。问题是我在 iframe 中加载的页面与它们正在加载的页面位于不同的域中。我无权访问 iframe 从中获取它们的域中的代码src,所以无论如何我可以加载这些页面而不会出现此错误?

如果需要,我可以发布代码,但没有什么复杂的,它是一个空 iframe,直到单击链接,此时 iframesrc使用$("#iframe").attr("src", link);.

提前致谢!

4

4 回答 4

3

不要使用 jQuery 来执行这个简单的任务,而是使用 HTML。

<a target="myIframe" href="http://www.google.com">Google</a>
<iframe id="myIframe" src="about:blank"></iframe>
于 2012-10-17T19:56:23.123 回答
1

您的问题可能与此有关。仔细检查您设置 iframe url 的方式

使用 javascript 在 ie 中更改 iframe 源

希望这可以帮助。

于 2012-10-17T19:57:53.570 回答
1

通常为了解决这个跨域问题,您可以创建所谓的代理页面。基本上,您所做的就是将srciframe 设置为您自己域中的页面(例如,我们称之为proxyFrame.php)。

在代码中,proxyFrame.php您将从要在 iframe 中加载的实际页面中获取内容。在 php 中,您可以使用file_get_contents().

您没有指定您使用的是哪种后端代码,但我很确定任何语言都会有类似的方式从 URL 中获取内容。

于 2012-10-17T19:58:30.000 回答
1

我最终将其更改为src我们需要的域并删除了所有设置src为的语句"",从而解决了问题。谢谢各位的帮助!

于 2012-10-18T17:34:54.477 回答