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

两个页面 传递数据 / 通信

作者: 智勇双全的小六 | 来源:发表于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, 发送来的数据。
    可以利用这三者对接受的数据进行校验。

相关文章

  • 两个页面 传递数据 / 通信

    参考教程 http://www.webhek.com/post/window-postmessage-api.ht...

  • flutter 数据传递与通信

    flutter 数据传递与通信 1.页面传值(页面间跳转) class GoodDetailPage extend...

  • vue.js组件间通信

    组件间需要能相互通信才价值,通信包括数据的传递,方法的调用。这样才能将不同组件结合起来搭建页面 父组件传递数据给子...

  • iOS Block的传值 代理传值 通知中心传值

    有的时候,我们需要页面跳转传递数据,就需要将这个页面通过某种形式传递给另一个页面。我们把两个页面分别记做:传值页面...

  • 小程序两页面数据互通

    A页面与B页面数据互通,A页面传递数据给B页面没问题,跳转就可以,B页面卸载如何传递数据给A页面? 答:那简单啊,...

  • Vue 后台管理项目11-Vue中的通信传值

    Vue中的通信传值 1.父组件向子组件传值通信 Ⅰ.props:进行数据的传递,适合胡子语法直接渲染页面,应用场景...

  • vue总结

    1.父子组件间通信时,动态数据需要用v-bind 2.有页面之间传递值的页面(比如根据企业id跳转至企业详情页面)...

  • aidl学习

    aidl学习 跨进程如何传递数据 两个进程无法直接通信 通过android系统底层间接通信 AIDL:androi...

  • Parcel

    两个进程间通信如何传递数据,数据传递和对象的传递是一样的么Parcel就是为了解决这个问题Parcel类似集装箱,...

  • postMessage解决跨域、跨窗口消息传递

    如果需要在页面内嵌的iframe页面中传递数据到当前页面中,很可能涉及到跨域和跨窗口通信,这是浏览器的同源策略所不...

网友评论

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

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