Javascript HTML5支持跨窗口消息传递吗?

Javascript HTML5支持跨窗口消息传递吗?,javascript,html,internet-explorer-10,Javascript,Html,Internet Explorer 10,规范说,我应该能够在窗口对象上使用postMessage(),我应该也能在一扇开着的窗户上做 然而,我以Robert Nyman的postMessage为例,试图让它发挥作用。然而,IE10和Chrome似乎都没有为新打开的窗口提供postMessage功能 var target=…//原始声明 popurtton.onclick=函数(evt){ realWin=window.open(iframeWin.frameElement.src,“window1”,“宽度=600,高度=400,状态

规范说,我应该能够在窗口对象上使用postMessage(),我应该也能在一扇开着的窗户上做

然而,我以Robert Nyman的postMessage为例,试图让它发挥作用。然而,IE10和Chrome似乎都没有为新打开的窗口提供postMessage功能

var target=…//原始声明
popurtton.onclick=函数(evt){
realWin=window.open(iframeWin.frameElement.src,“window1”,“宽度=600,高度=400,状态=yes,滚动条=no,可调整大小=yes”);
目标=realWin;
target.focus();
};
//…剪断…

target.postMessage(myMessage.value,expectorigin);// 我可以让它在Chrome 15.0.874.121中工作,尽管在您的示例中,您在打开窗口之前调用了
target.postMessage
,尽管您跳过了最初设置的任何代码
target

您还可能遇到在加载新窗口中的内容之前调用
postMessage
(或者至少加载到足以连接事件侦听器的程度)的问题。因此,事件可能会在没有任何人真正监听时触发。在此场景中,您可能需要添加等待,以确保加载新打开的窗口


在Internet Explorer 10中,我得到错误脚本16388:每当我尝试脚本时,操作就会中止,即使我等待10秒。

您的示例在opera上运行您使用的opera版本是什么?弹出窗口在我的安装版本11.61上不起作用。你能为我们创建一个小的JSFIDLE演示吗?我试过了,但JSFIDLE不让我使用(如果你复制代码,它应该在任何单独的真实浏览器窗口中都能工作。@JonnyBest你有什么改变吗?它现在不工作了。我也在使用11.61。我以前是怎么错过的?在Chrome中验证并工作了。我也发现了这个IE10错误,当打开的窗口试图调用父窗口时会发生这种情况,而这一个窗口将执行后期消息。)。解决此问题的诀窍是将postMessage包装为setTimeout 0ms。我将使用Internet Explorer了解发生这种情况的原因。