在window.open()窗口中使用postMessage()方法传递数据。ie可以正常接收和处理。火狐与谷歌不行。代码如下

//父级页面代码
btn.onclick = function (){
var win = window.open("xxx.html","newWin");
win.postMessage("string","*");
};
//子页面代码
function messages(event){
alert(event.data);
}
window.addEventListener("message",messages,false);

此类js脚本语言在火狐等非IE浏览器下执行,有一个非常重要的原则,就是不要任意使用关键词。
建议将关键词替换成一般写法后再试一试。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-29
var win = window.open("xxx.html","newWin");
win.onload = function(){
win.postMessage("string","*");
}
需要等到onload完毕再调用postmessage方法,你说的ie可以,chrome,和firefox为什么就不行,我就不清楚了,可能是内核不同吧。
相似回答