IE8 / 9 window.postMessage不工作,但是为什么呢?(IE8/9 window

2019-07-04 23:51发布

该“的postMessage”是一个HTML5 API,它是在所有主流浏览器包括IE8 / 9可用。 我所试图做的是创建一个从页面的弹出窗口,并能够跟使用“postMessage的”弹出窗口。 这个工程除了IE8 / 9每一个浏览器。 失望!

它看起来像IE8 / 9只允许I帧之间的通信,而是两个之间没有窗户,甚至连窗户都处在同一层次内。

Answer 1:

.postMessage方法作品 ,你只需要了解它从IE8及以上工作原理。 不幸的是,IE8和IE9它不会做你正在寻找什么(尽管它在IE10一样)。 虽然可以在IE8 / 9发送帧之间的消息,则不能将消息发送到一个单独的窗口。

有一个变通,在某些情况下工作。 马丁·毕比讨论了在他在这个问题上的博客文章的最后一段: PostMessage的弹出窗口和IE 。

欲了解更多关于这一点,和其他几个注意事项,请参阅埃里克·劳伦斯的MSDN上的帖子 。



Answer 2:

我发现, .postMessage()在IE9是不可靠的,除非我用String秒。

我的解决方法是简单地调用.postMessage(JSON.stringify({object: 'data'}))并使用JSON.parse()onMessage()在另一端的功能。



文章来源: IE8/9 window.postMessage not working, but why?