千家信息网

HTML5中的postMessage手册如何使用

发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,这篇文章主要介绍"HTML5中的postMessage手册如何使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"HTML5中的postMessage手册如何使
千家信息网最后更新 2025年02月16日HTML5中的postMessage手册如何使用

这篇文章主要介绍"HTML5中的postMessage手册如何使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"HTML5中的postMessage手册如何使用"文章能帮助大家解决问题。

我们在码代码的时候,经常会碰到以下跨域的情况:

1、页面内嵌套iframe,与iframe的消息传递

2、页面与多个页面之间的传递消息

针对这些令人头疼的跨域问题,html5特地推出新功能--postMessage(跨文档消息传输)。postMessage 在使用时,需要传入2个参数,dataoriginUrldata是指需要传递的内容,但是部分浏览器只能处理字符串参数,所以我们一般把data序列化一下,即JSON.stringify()originUrl是指目标url,指定的窗口。

下面直接甩例子,相信大家更容易理解写。

1、页面内嵌套iframe

父页面:

html:

hello word postMessage

js:

_window.onload=function(){    window.frames[0].postMessage('postMessage','http://127.0.0.1:8082/index2.html')} window.addEventListener('message',function(e){    console.log(e)    document.getElementById('parent').style.color=e.data})

子页面:

html:

接受信息

js:

window.addEventListener('message',function(e){      console.log(e)      let color = document.getElementById('button').style.color      window.parent.postMessage(color,'http://127.0.0.1:8081/index.html')});function changeColor(){      let buttonColor = document.getElementById('button').style.color      buttonColor='#f00'                 window.parent.postMessage(buttonColor,'http://127.0.0.1:8081/index.html')}

父页面通过postMessage的方法向iframe传递消息,而子页面通过window.addEventListener监听message方法来获取到父页面传递的值。如下图所示,data是父页面传递的值。

子页面向父页面传递消息,也是通过postMessage的方法去传递消息,不是过是以window.parent.postMessage(data,url)的方式传值。父页面获取值也是同样监听message事件。

2、多页面之间传递消息

父页面:

html:

hello word postMessage

js:

let parent = document.getElementById('parent')function postMessage(){    let windowOpen=window.open('http://127.0.0.1:8082/index2.html','postMessage')    setTimeout(function(){       windowOpen.postMessage('postMessageData','http://127.0.0.1:8082/index2.html')  },1000) }

子页面:

html:

接受信息

js:

window.addEventListener('message',function(e){      console.log(e) });

父页面向子页面传递消息通过 window.open 打开另一个页面,然后向他传值。需要注意的是,使用 postMessage 传值的时候需要使用setTimeout去延迟消息的传递,因为子页面的加载不是一下子就加载完成的,也就是说子页面的监听事件还未开始,此时传值过去是接收不到的。

关于"HTML5中的postMessage手册如何使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

页面 消息 方法 手册 知识 监听 之间 事件 信息 内容 参数 时候 行业 问题 不同 头疼 实用 也就是 也就是说 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全主题创意绘画大学 广电运通金融电子软件开发 龙岗区定制服务器机柜 云冈区口碑好的网络安全诚信经营 qq收藏文件上传至服务器 承德致诚网络技术 手机网络安全防护软件 计算字符串长度数据库 网络技术方面的内容 互联网和科技的结合 软件开发企业平均税负 网络安全运行保密制度 2021年数据库工程师 东城区技术软件开发平台 广东前端软件开发价钱是多少 java编写后端服务器 软件开发学校排名北京 网络安全你我他手抄报黑白 曙光服务器单盘识别不到系统盘 数据库语言的发展 网络安全密钥怎么用 软件数据库评审主要包括哪些内容 先进网络技术行业 家庭储存服务器 萌娃爱画画手抄报网络安全 大专无线网络技术 惠普服务器管理ip配置 自己组装好的服务器怎么连接mc 闵行区个人软件开发诚信合作 我的世界服务器怎么改成中文版
0