从打开的窗口对 iFrame 内的 DOM 进行 Javascript 操作

发布于 2025-01-06 15:01:56 字数 491 浏览 2 评论 0原文

我的主页来自“DomainA”,其中有一个来自“DomainB”的 iFrame。 iFrame 内的页面有一个打开窗口的 onclick 事件,也来自 DomainB。

我正在尝试使用以下方法从打开的窗口更新 iFrame 内的输入字段:

window.opener.document.getElementById('foo').value = 'bar';

这在 FF 中工作正常,但是在 IE 中我收到错误:SCRIPT70:权限被拒绝

似乎我得到了由于同源策略而被阻止,但打开窗口的页面和打开的窗口是两个都来自域B。

我在 window.open() 中使用相对 URI。 IE 是否从 iframe 的父级确定域?

我该如何解决这个问题?

My main page is from "DomainA" and I have an iFrame within that from "DomainB". The page within the iFrame has an onclick event to open a window, also from DomainB.

I'm trying to update an input field inside the iFrame from the opened window using:

window.opener.document.getElementById('foo').value = 'bar';

This works fine in FF, however in IE I get the error: SCRIPT70: Permission denied

It seems like I'm getting blocked because of the Same Origin Policy, but the page that opens the window, and the opened window are both from DomainB.

I'm using a relative URI within window.open(). Is IE determining domain from the parent of the iframe?

How can I get around this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

池木 2025-01-13 15:01:56

事实证明,另一位开发人员在其中一个脚本中添加了以下行:

document.domain = 'bla.com';

这导致了该行为。请无视,谢谢。

Turns out another developer had added the follwing line inside one of the scripts:

document.domain = 'bla.com';

This was causing that behaviour. Please disregard, thx.

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