• 技术文章 >web前端 >H5教程

    Html5 postMessage?

    2016-06-07 08:42:33原创723
    a标签打开一个新页面 想用postMessage的方式传递些数据 但是一直没有成功
    在外面包了一层 定时器就OK了。
    求解~~
    没有跨域的问题
    我在想 新打开的页面是否‘太慢’了 根本没有响应postmessage事件

    回复内容:

    postMessage发送消息是给当时window里的document。而刚open时,document是about:blank。要等demo.html实际开始加载(至少要等到browser开始接受response的body的第一个字节),postMessage才能发送到demo.html。

    所以setTimeout也不是很靠谱,比如网络连接时间比较长,超过100ms,也不会成功。

    靠谱的方式是等待demo.html向父窗口发回第一个消息时,再向demo.html发送消息。

    var newWin = ...
    window.addEventListener('message', e => {
      if (/* got ready message from demo.html */) {
        newWin.postMessage(...)
      }
    })
    
    因为新窗口根本没加载好啊。open之后获得新窗口的句柄,然后为这个句柄设置onload事件,在onload事件里发送消息
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:postMessage
    上一篇:关于 HTML5 视频编码,听说 Google 没那么努力推 WebM 了,听说 Mozilla 貌似要采用 H.264 了,这是不是意味著 H.264 最终会胜出? 下一篇:HTML5 移动开发未来可否取代 iOS 和安卓?
    千万级数据并发解决方案

    相关文章推荐

    • 为什么制定html5标准的网站奇丑无比?• HTML5 的普及需要具备哪些因素?• 在HTML5 Canvas中放入图片和保存为图片的方法_html5教程技巧• 基于Modernizr 让网站进行优雅降级的分析_html5教程技巧• 开发人员所需要知道的HTML5性能分析面面观_html5教程技巧
    1/1

    PHP中文网