从跨域 iframe 访问父窗口变量

发布于 2024-09-19 09:35:31 字数 563 浏览 8 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

烦人精 2024-09-26 09:35:31

如果您需要与其他框架通信,可以使用 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).

峩卟喜欢 2024-09-26 09:35:31
  • 跨域读取数据会带来安全风险,因为另一个域上的数据可能包含敏感信息(即身份验证令牌)。
  • 可以将数据发布到另一个域。所以在这种情况下,也许你可以尝试:

    • domain2.com/test2.html 向 mydomain1.com/index.html 发送一条消息,询问“a”值。
    • mydomain1.com/index.html 收到消息后可以通过将“a”值发布到 domain2.com/test2.html 进行回复
  • 这意味着您需要在两个域上设置事件侦听器以接收从另一个域发布的消息域。

  • Reading data cross domain poses security risks because the data on another domain may contain sensitive information (i.e authentication token).
  • It's possible to post data to another domain. So in this case, maybe you can try:

    • domain2.com/test2.html posts a message to mydomain1.com/index.html asking for the "a" value.
    • mydomain1.com/index.html when received the message can reply by posting the "a" value to the domain2.com/test2.html
  • It means you need to set up event listeners on both domains to receive messages posted from another domain.

夜深人未静 2024-09-26 09:35:31

从 iframe 中,您可以访问父 DOM 节点,但不能访问父窗口变量。

from the iframe you can access parent DOM nodes, but you cannot do that to parent window variables.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文