美文网首页
两个页面 传递数据 / 通信

两个页面 传递数据 / 通信

作者: 智勇双全的小六 | 来源:发表于2018-07-13 14:32 被阅读0次

    参考教程

    http://www.webhek.com/post/window-postmessage-api.html
    https://www.cnblogs.com/dolphinX/p/3464056.html

    一 发送消息

    api:window.postMessage
    window.postMessage 的功能是允许在两个窗口/frames 间发送数据信息。有点类似于跨域的 AJAX,但是不能与服务器之间交互。

    1.1 用法

    postMessage(data, origin)
    

    一般来说,data 只要是 js 基本类型就可以,但是有的浏览器不支持,所以最好是json。
    origin,指明目标窗口的源,即domain。如果是传递给所有窗口,可以使用 "*",如果和当前窗口同源可以使用“/”

    window.postMessage("aa",domain)
    

    二 接受消息
    监听 window 的 message 事件就可以。

    window.addEventListener('message',function(e){
                    if(e.source!=window.parent) return;
                    var color=container.style.backgroundColor;
                    window.parent.postMessage(color,'*');
                },false);
    

    参数 e 有三个属性:

    • e.source - 消息源,
    • e.origin, 消息源的 URI(协议+域名+端口)
    • e.data, 发送来的数据。
      可以利用这三者对接受的数据进行校验。

    相关文章

      网友评论

          本文标题:两个页面 传递数据 / 通信

          本文链接:https://www.haomeiwen.com/subject/rlrjpftx.html