Firefox postMessage 问题

2018-11-22 17:31:39 +08:00
 evax

最近开发一个需求时遇到一个奇怪的问题:

有页面 parent.html

<body>
  <iframe src="./child.html" style="display: none" id="target"></iframe>
  <script>
    window.addEventListener('message', e => {
      // 加载完成
      document.querySelector('#target').style.display = 'block'
    })
  </script>
</body>

有页面 child.html

<body>
  <h1>Hello World</h1>
  <script>
    window.postMessage('加载完成', 'parent 所在域名')
  </script>
</body>

需要完成的功能是:child.html 加载完成之后,通知 parent.html 页面,parent 将 iframe 取消 display none 样式.

在 Chrome 浏览器上和 Safari 浏览器上均可实现目的,但是 firefox 上就是不行。 在 firefox 上,iframe 的 display 样式不能为 none,否则 parent 就不能接收到 child 的 message。有点奇葩。。。

查了一圈资料,好像是 firefox 的 bug,但是还是没有搞清楚到底是什么情况,,有知道的 V 友,请求帮助。。感谢。

1727 次点击
所在节点    Firefox
1 条回复
dalieba
2018-11-30 10:36:13 +08:00
到火狐社区发求助帖吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/510484

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX