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

Jam*_*een 54 javascript cross-browser

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

Ray*_*nos 76

我可以使用跨文档消息传递吗?

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

  • 请注意,IE8/9仅支持数据参数的字符串,而所有其他浏览器都支持对象. (34认同)
  • @ElSinus我会避免评估.我建议使用JSON.stringify和JSON.parse的组合 (6认同)
  • 老帖但你可以发送json(sting)并使用eval来解码对象 (4认同)

mag*_*ags 7

IE8 + HOWEVER支持postMessage

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

如果你想从一个实际上在IE中运行的演示开始,请查看Ilya Kantor的这篇精彩教程