javascript – HTML5 – 跨浏览器iframe postmessage – 父与子通信

前端之家收集整理的这篇文章主要介绍了javascript – HTML5 – 跨浏览器iframe postmessage – 父与子通信前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我写了一个内容脚本,将iframe注入任何网站(因此不同的域).

我需要父网站向子iframe发送一些信息,但我找不到办法.

代码

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

以某种方式不起作用,我得到一个无法调用未定义错误方法’postMessage’.
但是当我在Chrome的控制台中直接尝试相同的代码时,它确实有用.

我将postMessage从子节点发送到父节点没有问题,但只需要一种方法让父节点向子节点iframe发送消息.

解决方法

我最近编写了将postMessage作为iframe的代码,我遇到了一个类似的问题,它说contentWindow是未定义的.

就我而言,我的iframe还不是DOM树的一部分,它是由document.createElement(‘iframe’)创建的变量.

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

当我处理项目时,我发现postMessage的Mozilla Developer Network页非常有用.

猜你在找的JavaScript相关文章