Javascript IE11支持window.postMessage()吗
我正在使用window.postMessage进行跨域弹出式通信。firefox和chrome上的一切似乎都很好。主要问题在于IE11。 我在多个系统IE11上进行了测试,对于少数几个系统来说,它工作正常,但对于其他系统来说,它似乎听不到父页面上的消息 由于我们(测试的人)都在同一个网络下,所以我们拥有相同版本的IE。 确切版本:11.0.9600.18314CO。从过去的两天开始,这非常令人沮丧 更新: 我发现不同浏览器中的文档模式不同。在我的浏览器上,网站加载了EDGE,一切正常。在其他一些系统中,它使用IE7模式加载,这导致了问题 现在我不知道为什么同一个网站的文档模式在不同的系统IE上是不同的 以下是一个例子:Javascript IE11支持window.postMessage()吗,javascript,html,cross-domain,postmessage,Javascript,Html,Cross Domain,Postmessage,我正在使用window.postMessage进行跨域弹出式通信。firefox和chrome上的一切似乎都很好。主要问题在于IE11。 我在多个系统IE11上进行了测试,对于少数几个系统来说,它工作正常,但对于其他系统来说,它似乎听不到父页面上的消息 由于我们(测试的人)都在同一个网络下,所以我们拥有相同版本的IE。 确切版本:11.0.9600.18314CO。从过去的两天开始,这非常令人沮丧 更新: 我发现不同浏览器中的文档模式不同。在我的浏览器上,网站加载了EDGE,一切正常。在其他一些
第1页:
var popup=window.open(“popup.html”,“popup”,“宽度=200,高度=200”);
函数接收消息(事件){
如果(event.origin==)http://run.plnkr.co") {
日志(事件、事件、数据);
this.location.href=event.data;
}
}
window.addEventListener(“消息”,receiveMessage,false);
第2页:
控制台日志(窗口开启器);
var button=document.querySelector(“表单输入[type=button]”);
button.onclick=函数(e){
e、 预防默认值();
e、 停止传播();
window.opener.postMessage(“redirect.html”
,window.opener.location.href);
window.close();
}
第3页:
重定向
我有相同的条件-跨域弹出窗口对话框和非常类似的代码,它们在IE11中也不起作用(旧版本对我来说不相关)。
在我的情况下,我发现它不工作,因为Internet Explorer安全区域
我的开场白页面在受信任的站点中,而对话框页面不是。发现如果两个站点都有相同的区域(受信任或internet),那么它就可以工作
在我的测试中,您的代码似乎无法工作,因为
window.opener.location.href
。您可能无法访问开窗器属性。如果我将其更改为特定域,它将开始工作。可能与的重复,请查看此->@davidkonrad:请检查我关于此问题的更新。如果您对此有任何想法,请告诉我。“我发现不同浏览器中的文档模式不同”在我看来,您需要强制不同的MS浏览器进入单一标准模式,即或类似模式。您是否解决了此问题?不过我也有同样的问题。