最近开发一个需求时遇到一个奇怪的问题:
有页面 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
dalieba 2018-11-30 10:36:13 +08:00 via Android
到火狐社区发求助帖吧
|