跨域 iframe 通信:无法读取孩子的 src

发布于 2024-11-14 20:15:50 字数 358 浏览 1 评论 0原文

我有一个 iframe,我想从 iframe 向其父窗口发送一条消息。这就是孩子所做的

window.location += '#do_install||something';

这就是父母所做的($是jquery)

setTimeout('alert($("iframe#main_store_frame").attr("src"));', 5000);

我尝试了许多其他方法来检测位置更改,但它们都失败了。它们都向我显示了初始 iframe 位置,而不是添加了“#do_install||something”的新 iframe 位置。请让 mw 知道我做错了什么。

I have an iframe and I want to send a message from the iframe to its parent window. That's what child does

window.location += '#do_install||something';

That's what parent does ($ is jquery)

setTimeout('alert($("iframe#main_store_frame").attr("src"));', 5000);

I've tried many other ways to detect that location change but all of them fail. They all show me the initial iframe location, not a new one with '#do_install||something' added. Please let mw know what I am doing wrong.

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

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

发布评论

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

评论(1

蹲在坟头点根烟 2024-11-21 20:15:50

您有多种选择来执行此操作:

1 使用 window.name (在 iframe 中)和 iframe.contentWindow.name (在父级中)。
这个想法实际上是更改你的 iframe 名称(来自你的 iframe)

IFRAME:
window.name = "new value"

并使用父窗口中的 iframe.contentWindow.name(而“iframe”是您的 iframe 对象)

父窗口:
console.log(iframe.contentWindow.name)

您可以阅读以下文章来了解更多信息

2 使用 HTML 5 window.postMessage。您可以在此处找到示例。

这个想法是能够在使用域访问列表的同时在父窗口和 iframe 之间设置连接。
如果您使用 jQuery,您可以使用 jQuery exmaple

另一个项目是 < a href="http://xauth.org/spec/" rel="nofollow">xAuth ”是一个开放平台,用于在网络上扩展经过身份验证的用户服务。”

总而言之,

如果您有能力控制父框架和 iframe(至少要求您的合作伙伴将您的代码提交到他们的页面中),您将拥有跨域通信的权限

** 抱歉没有在这里打印示例,它们是只是太长了。

希望我有所帮助。

You have several option to do that:

1 Use the window.name (in iframe) and iframe.contentWindow.name (in parent) .
the idea is actually to change your iframe name (from your iframe)

IFRAME:
window.name = "new value"

and use the iframe.contentWindow.name from your parent window (while "iframe" is your iframe object)

PARENT:
console.log(iframe.contentWindow.name)

You may read the following article for more information

2 Use HTML 5 window.postMessage. You may find an exmaple here.

the idea is to be able to set a connection between parent window and the iframes while using an access list by domain.
If you are using jQuery you may use jQuery exmaple

Another project is xAuth " is an open platform for extending authenticated user services across the web."

to sum-up

if you have the ability to control both parent and iframes (at least request your partners to submit your code into their page) you will have the permission for cross domain communication

** sorry for not printing the examples here, they are just too long.

hope I helped.

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