postMessage的使用

postMessage的使用postMessage是H5的API,用来解决跨页面通信的。postMessage的使用分为发送方和接收方。发送方的代码用法如下:otherWindow.postMessage(message,targetOrigin,[transfer]);otherWindow是接收方的window对象。可以通过以下几种方法获得,例如window.open()方法返回的值就是打开页面的window对象,或…

大家好,又见面了,我是你们的朋友全栈君。

postMessage是H5的API,用来解决跨页面通信的。postMessage的使用分为发送方和接收方。

发送方的代码用法如下:

otherWindow.postMessage(message, targetOrigin, [transfer]);

otherWindow是接收方的window对象。可以通过以下几种方法获得,例如window.open()方法返回的值就是打开页面的window对象,或者iframe元素的contentWindow属性能获得iframe标签内页面的window对象,等等。

message是你要发送到其他 window的数据。

targetOrigin是接收方域,即接收方页面的window.origin属性。如果接收方窗口的协议、主机地址或端口这三者的任意一项不匹配targetOrigin提供的值,那么消息就不会被发送。该参数也可以是‘*’,表示对接收方的域没有任何限制。

[transfer]是可选项,数组内的对象是实现Transferable接口的对象。它和message一样会被传递给目标页面,这些对象的所有权将被转移给消息的接收方,而发送一方将不再保有所有权。

接收方要开启事件监听,监听message事件,接收方的代码如下:

window.addEventListener("message", receiveMessage, false);

function receiveMessage(event)
{
  var origin = event.origin; 
  if (origin !== "http://example.org:8080")// 假设接受方只接受来自http://example.org:8080域的信息
    return;
  // ...
}

这里的event是MessageEvent的实例,里面包含了data、origin、source属性。data是发送方发送的message,origin是发送方所属的域,source是发送方的window对象的引用。

案例以后在进行补充…

更多详情请看MDN,链接地址:
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158555.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 什么是雪崩效应?雪崩效应常见场景及应对策略

    什么是雪崩效应?雪崩效应常见场景及应对策略一、什么是雪崩效应分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当会员服务不可用时,订单服务请求线程被阻塞,当有大批量请求调用会员服务时,最终可能导致整个会员服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应。​二、雪崩效应常见场景硬件故障:如剔除坏盘抖动,服务器宕机,网络抖动,机房断电,光纤被挖断等;流量激增:如异常流量,重试加大流量等;缓存穿透:短时间内大量缓存失效时,大

  • JVM学习1

    JVM学习1

    2021年11月12日
  • 跨机器的文件传输

    跨机器的文件传输

  • PyCharm社区版安装教程和环境配置及使用[通俗易懂]

    PyCharm社区版安装教程和环境配置及使用[通俗易懂]一、PyCharm官网下载访问官网地址:https://www.jetbrains.com/pycharm/点击首页【Download】按钮,进入下载页面,选择Community下的【Download】,如图:点击后进入“ThankyoufordownloadingPyCharm!”页面,选择“另存为”,如图:选择本地目录路径,点击【保存】,开始下载:双击本地的PyCharm安装包,进入安装首页,点击【Next>】按钮,如图:进入“ChooseInstallLocati

  • Android最全的屏幕适配

    Android最全的屏幕适配转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因、重要概念、解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将有所收获!Android屏幕适配出

  • JavaScript给元素添加class属性

    JavaScript给元素添加class属性注意:element.classList.remove()、element.classList.add()—ie9及以下不兼容//移除div的class属性obj.classList.remove(‘active’);//添加class属性值//方式一obj.className+=’newactive’;//方式二//obj.className=…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号