现在支持window.postMessage
电话的所有浏览器是什么?我正在寻找本地支持它的浏览器,而不是通过iFrame破解。什么浏览器现在支持window.postMessage调用?
回答
Can I use cross-document messaging
FF3 +,IE8 +,Chrome浏览器,Safari浏览器(5?),Opera10 +
IE8不允许跨Windows /标签的postMessage
更多信息点击这里
很好的指出!我甚至不知道它可以在其他浏览器的windowws/tabs中使用> _> – Raynos 2011-05-17 20:29:26
IE9支持跨Windows /标签页的postMessage的任何想法? – Blowsie 2011-08-05 13:22:58
postMessage()API现在对IE9模式页面具有异步行为。本文http://blogs.msdn.com/b/ieinternals/archive/2009/09/16/bugs-in-ie8-support-for-html5-postmessage-sessionstorage-and-localstorage.aspx解释了仍然存在的问题在IE9中并不确定它是否已经得到纠正。 – 2011-08-05 14:36:35
为了最近的价值,我遇到了一些奇怪的webkit浏览器/版本,它们不支持postMessage。我使用IE(8)检测作为寻求替代方法的手段。相反,我也许应该只是做了一些这样的事情:
if(window.postMessage){
console.log('Supports post message');
}
或者可能有点清洁:
var pm_is_supported = typeof(window.postMessage) == 'function';
谢谢,这是好东西。这不是问题的答案,而应该是一个评论。 – 2014-04-08 08:19:18
您的清洁解决方案在IE8中无法使用。在IE8中window.postMessage以对象形式返回 – KingOfHypocrites 2014-05-25 15:14:35
我会坚持:return !! window.postMessage; – KingOfHypocrites 2014-05-25 15:17:09
的postMessage在IE8 +无论其
- 记住支持了IE9及以下要求数据以字符串形式传递,而不是作为对象传递。
- IE不喜欢你在页面加载后立即打电话
postMessage
(我假设这与你发布的需要时间加载的iframe有关)。
使用setTimeout
等待一两秒钟,然后致电postMessage
。
我花了几个小时才弄明白这一点,IE并没有给我任何错误信息,直到我添加了setTimeout,它才静静地无所事事。
如果你想开始在IE浏览器实际上做工作演示,看看this nifty tutorial by Ilya Kantor
所有最新的浏览器支持例如IE 11,边缘,火狐57+,Dafari 11+,Safari浏览器的iOS 10.2+,Opera Mini的,Android版Chrome,UC浏览器等
https://caniuse.com/#search=document%20messaging
- 1. 什么浏览器支持XSLT 2.0?
- 2. 什么浏览器支持HTML 5/CSS3
- 3. 什么clearfixes支持哪些浏览器?
- 4. 什么浏览器支持“!重要”?
- 5. Xpath和浏览器支持什么
- 6. 什么浏览器支持`overflow-y`?
- 7. Gecko支持的浏览器和Webkit支持的浏览器有什么区别?
- 8. 什么浏览器当前实现了对HTML5 MediaController的支持?
- 9. 浏览器支持
- 10. 浏览器支持WebDriver还是WebDriver支持浏览器
- 11. window.devicePixelRatio浏览器支持
- 12. 浏览器支持sencha touch
- 13. Kurento浏览器/ webRTC支持
- 14. Ember.js浏览器支持?
- 15. document.fileSize浏览器支持
- 16. 浏览器字体支持
- 17. Robot Framework浏览器支持
- 18. Android iFrame浏览器支持
- 19. Scaja.js浏览器支持
- 20. XML跨浏览器支持
- 21. 边缘浏览器支持
- 22. ngAria支持Safari浏览器
- 23. 跨浏览器支持jQuery
- 24. 浏览器支持“e.target.files”
- 25. 为什么在Firefox 27中不支持GWT浏览器插件?
- 26. 帮助浏览器窗口会合window.postmessage
- 27. window.postMessage Internet Explorer 11支持
- 28. 什么浏览器当前支持E4X(直接支持XML到JavaScript)
- 29. 如果浏览器不支持gzip,会发生什么情况?
- 30. 什么是CSS3 Box-sizing的浏览器支持?
需要注意的是IE8/9只支持数据参数字符串,而所有其他浏览器都支持对象。 – 2013-06-04 04:41:02
@Brando:你评论刚刚救了我一天。我想我会花几个小时试图弄清IE为什么不起作用;但是,我正在发送一个对象。 – 2013-09-01 16:05:49
旧的帖子,但你可以发送json(刺)并使用eval来解码对象 – ElSinus 2014-06-24 13:02:30