什么浏览器现在支持window.postMessage调用?

时间:2011-05-17 20:03:34

标签: javascript cross-browser

现在支持window.postMessage通话的所有浏览器是什么?我正在寻找本机支持它的浏览器,而不是通过iFrame hack。

5 个答案:

答案 0 :(得分:76)

Can I use cross-document messaging

FF3 +,IE8 +,Chrome,Safari(5?),Opera10 +

答案 1 :(得分:11)

答案 2 :(得分:7)

IE8 + HOWEVER

支持postMessage
  • 请记住,IE9及以下版本要求数据以字符串形式传递,而不是作为对象传递。
  • IE不希望您在页面加载后立即致电postMessage(我假设这与您发布的需要时间加载的iframe有关)。
    在致电setTimeout之前,请使用postMessage等待一到两秒 花了我几个小时来弄清楚这一点,IE没有给我任何错误信息,它只是在我添加setTimeout之前默默无所事事。

如果您想从实际在IE中运行的演示开始,请查看this nifty tutorial by Ilya Kantor

答案 3 :(得分:2)

对于它最近的价值,我遇到了一些不支持postMessage的奇怪的webkit浏览器/版本。我使用IE(8)检测作为寻找替代方法的手段。相反,我可能应该做一些这样的事情:

if(window.postMessage){
    console.log('Supports post message');
}

或者可能更清洁:

var pm_is_supported = typeof(window.postMessage) == 'function';

答案 4 :(得分:1)

所有最新的浏览器支持IE 11,Edge,Firefox 57+,Dafari 11 +,iOS Safari 10.2+,Opera mini,Chrome for Android,UC Browser等。

https://caniuse.com/#search=document%20messaging