Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5';s window.postmessage在IE9 IEs下不工作_Html_Iframe_Internet Explorer 8_Cross Domain - Fatal编程技术网

HTML5';s window.postmessage在IE9 IEs下不工作

HTML5';s window.postmessage在IE9 IEs下不工作,html,iframe,internet-explorer-8,cross-domain,Html,Iframe,Internet Explorer 8,Cross Domain,我使用html5的PostMessageAPI在iFrame中实现跨域通信。它在所有现代浏览器和IE9中都能成功运行,但在IE8或以下版本中则不行 我尝试了一个用自定义标题注册一些html5标记的解决方案,但是window.postMessage对于IE8来说仍然是个谜 是的,我知道我可以在IE8中使用各种方式进行跨域处理,如xdr,但如果window.postMessage可以在IE8或更低版本中工作,请发表评论。显然,IE8不允许跨选项卡/窗口使用postMessage,只允许iframe和

我使用html5的PostMessageAPI在iFrame中实现跨域通信。它在所有现代浏览器和IE9中都能成功运行,但在IE8或以下版本中则不行

我尝试了一个用自定义标题注册一些html5标记的解决方案,但是window.postMessage对于IE8来说仍然是个谜


是的,我知道我可以在IE8中使用各种方式进行跨域处理,如xdr,但如果window.postMessage可以在IE8或更低版本中工作,请发表评论。

显然,IE8不允许跨选项卡/窗口使用
postMessage
,只允许
iframe
和父级之间使用。在IE8下面,你真倒霉,因为IE7是在2006年发布的,而HTML5是W3C在2007年采用的工作草案。

请注意,你的页面在IE中不会处于标准模式,因为在你的
DOCTYPE
之前插入了广告,这将导致HTML5的一些功能无法工作。感谢您的提示,我已经在本地的tomcat上测试了这个演示,它肯定没有广告和HTML5的窗口。postMessage在IE8中仍然无法工作。不幸的是,我在服务器上上传了一些广告来展示给你们。ie9下的cors有一些黑客行为,比如轮询、代理和一些库,比如easyxdm和modernizer,所以我应该附加他们对浏览器的支持吗?IE8下的cors似乎也不受支持。如果IE9之前的支持对您很重要,那么您应该使用跨域通信黑客。我认为Modernizer在这方面帮不了你,它主要是功能检测库,而不是缺少功能的替代品。Thx lanzz。是的,modernizer并没有以这种方式提供帮助,尽管投票和代理等其他黑客帮我完成了这项工作。