现在支持window.postMessage
通话的所有浏览器是什么?我正在寻找本机支持它的浏览器,而不是通过iFrame hack。
答案 0 :(得分:76)
Can I use cross-document messaging
FF3 +,IE8 +,Chrome,Safari(5?),Opera10 +
答案 1 :(得分:11)
IE8不允许跨窗口/标签使用postMessage
了解更多信息,请点击此处
答案 2 :(得分:7)
IE8 + HOWEVER
支持postMessagepostMessage
(我假设这与您发布的需要时间加载的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