gpt4 book ai didi

javascript - HTML5 - 跨浏览器 Iframe postmessage - 父子通信

转载 作者:太空狗 更新时间:2023-10-29 14:38:39 25 4
gpt4 key购买 nike

我编写了一个内容脚本,将 iframe 注入(inject)任何网站(因此不同的域)。

我需要父网站向子 iframe 发送一些信息,但是我找不到实现它的方法。

代码

var targetFrame = $('#myIframe')[0];
targetFrame.contentWindow.postMessage('the message', '*');

不知何故不起作用,我得到一个 Cannot call method 'postMessage' of undefined 错误。但是当我直接在 Chrome 的控制台中尝试相同的代码时,它起作用了。

尽管从子级向父级发送 postMessage 没有问题,但只需要一种方式让父级向子级 iframe 发送消息。

最佳答案

我最近编写了对 iframe 执行 postMessage 的代码,我遇到了一个非常相似的问题,它说 contentWindowundefined

在我的例子中,我的 iframe 还不是 DOM 树的一部分,它是由 document.createElement('iframe') 创建的一个变量。

一旦我将它隐藏(宽度和高度为 0px,隐藏可见性)到页面主体中,contentWindow 不再是未定义的,一切都按预期工作。

我找到了 Mozilla Developer Network postMessage 的页面在我处理项目时非常有用。

关于javascript - HTML5 - 跨浏览器 Iframe postmessage - 父子通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11779856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com