V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
evax
V2EX  ›  Firefox

Firefox postMessage 问题

  •  1
     
  •   evax · 2018-11-22 17:31:39 +08:00 · 1885 次点击
    这是一个创建于 2200 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    有页面 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 条回复    2018-11-30 10:36:13 +08:00
    dalieba
        1
    dalieba  
       2018-11-30 10:36:13 +08:00 via Android
    到火狐社区发求助帖吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2615 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:36 · PVG 14:36 · LAX 22:36 · JFK 01:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.