evax
V2EX  ›  Firefox

Firefox postMessage 问题

  •  1
     
  •   evax · Nov 22, 2018 · 2647 views
    This topic created in 2738 days ago, the information mentioned may be changed or developed.

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

    有页面 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 友,请求帮助。。感谢。

    1 replies    2018-11-30 10:36:13 +08:00
    dalieba
        1
    dalieba  
       Nov 30, 2018 via Android
    到火狐社区发求助帖吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2894 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 14:51 · PVG 22:51 · LAX 07:51 · JFK 10:51
    ♥ Do have faith in what you're doing.