从跨域 iframe 访问父窗口变量
http://mydomain1.com/index.html
<html>
<body>
<script type="text/javascript">
var a = 1;
</script>
<iframe src="http://domain2.com/test2.html"></iframe>
</body>
</html>
内部 http://domain2.com/test2.html
<script type="text/javascript">
alert(parent.a); // forbidden
</script>
有解决方法吗?
Inside http://mydomain1.com/index.html
<html>
<body>
<script type="text/javascript">
var a = 1;
</script>
<iframe src="http://domain2.com/test2.html"></iframe>
</body>
</html>
Inside http://domain2.com/test2.html
<script type="text/javascript">
alert(parent.a); // forbidden
</script>
Any work arounds?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您需要与其他框架通信,可以使用
postMessage
。这仅适用于现代浏览器(IE8、FF3、Opera 9、Chrome)。由于安全原因,您实际上无法完全访问跨域框架(同源策略) 。
If you need to communicate with the other frame, you could use
postMessage
. This is only available on modern browsers (IE8, FF3, Opera 9, Chrome).You cannot really have full access to cross domain frames due to the security reasons (Same Origin Policy).
可以将数据发布到另一个域。所以在这种情况下,也许你可以尝试:
这意味着您需要在两个域上设置事件侦听器以接收从另一个域发布的消息域。
It's possible to post data to another domain. So in this case, maybe you can try:
It means you need to set up event listeners on both domains to receive messages posted from another domain.
从 iframe 中,您可以访问父 DOM 节点,但不能访问父窗口变量。
from the iframe you can access parent DOM nodes, but you cannot do that to parent window variables.