我在 A.com 上有一个站点,在 B.com 上有一个 iframe,它从 A.com 调用 javascript。这在 FF 中效果很好。在 IE7 / 8 我得到一个
Message: Access is denied.
信息。我已经通过 Fiddler 检查了 HTTP 流量 - 我可以看到它没有在 Fiddler 中被阻止?
有什么想法可能导致这种情况以及如何解决?
我在 A.com 上有一个站点,在 B.com 上有一个 iframe,它从 A.com 调用 javascript。这在 FF 中效果很好。在 IE7 / 8 我得到一个
Message: Access is denied.
信息。我已经通过 Fiddler 检查了 HTTP 流量 - 我可以看到它没有在 Fiddler 中被阻止?
有什么想法可能导致这种情况以及如何解决?
如果两个页面都在您的控制之下(即它们属于您并且您可以更改代码),请尝试以下操作 -
http://www.tomhoppe.com/index.php/2008/03/cross-sub-domain-javascript-ajax-iframe-etc/
像这样设置 document.domain:
<script type="text/javascript">
document.domain = 'tomhoppe.com';
</script>
只要 IFrame 是“同源”的,它们就可以进行通信 - 所以相同的域和相同的协议。如果它们的来源不同,则通信会被阻止。
HTML5 引入了一种新的通信机制。可能值得一看http://www.w3.org/TR/webmessaging/
http://en.wikipedia.org/wiki/Cross-document_messaging
安全隐患也值得一读
https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet#Web_Messaging