相关疑难解决方法(0)

IE10中的跨源postMessage是否被破坏?

我正试图做一个简单的postMessage例子......

  • 在IE10中
  • 在窗口/标签之间(与iframe)
  • 跨越起源

删除这些条件中的任何一个,并且工作正常:-)

但据我所知,postMessage当两个窗口共享一个原点时,窗口之间似乎只能在IE10中工作.(嗯,事实上 - 奇怪的是 - 行为稍微宽容一点:共享主机的两个不同的起源似乎也有效).

这是一个有记录的错误吗?有任何变通方法或其他建议吗?

(注意:这个问题触及了问题,但它的答案是关于IE8和IE9 - 而不是10)


更多细节+例子......

启动页面演示

<!DOCTYPE html>
<html>
  <script>
    window.addEventListener("message", function(e){
      console.log("Received message: ", e);
    }, false);
  </script>
  <button onclick="window.open('http://jsbin.com/ameguj/1');">
    Open new window
  </button>
</html>
Run Code Online (Sandbox Code Playgroud)

推出了网页演示

<!DOCTYPE html>
<html>
  <script>
    window.opener.postMessage("Ahoy!", "*");
  </script>
</html>
Run Code Online (Sandbox Code Playgroud)

这适用于:http://jsbin.com/ahuzir/1 - 因为两个页面都托管在同一个源(jsbin.com).但是将第二页移到其他地方,它在IE10中失败了.

html5 compatibility postmessage cross-browser internet-explorer-10

90
推荐指数
3
解决办法
6万
查看次数

window.postmessage()在不同选项卡中的应用程序之间进行通信

是否有机会使用window.postmessage()在同一浏览器的不同选项卡中的两个不同应用程序之间进行通信?

我知道你可以在应用程序和iFrame之间做到这一点,但不同的标签呢?

更新:

案例场景:

  1. 用户在一个选项卡中播放来自vk.com的音频

  2. 用户开始在另一个标签页面中播放来自youtube.com的视频

  3. youtube.com将postmessage()发送到视频开始播放的vk.com

  4. vk.com使音频保持沉默

谢谢

javascript cross-platform postmessage cross-domain

1
推荐指数
1
解决办法
3831
查看次数