位置: IT常识 - 正文

【JS】postMessage 用法(可以给iframe传值)(javascript postmessage)

编辑:rootadmin
【JS】postMessage 用法(可以给iframe传值) 文章目录基本概念代码案例基本概念

推荐整理分享【JS】postMessage 用法(可以给iframe传值)(javascript postmessage),希望有所帮助,仅作参考,欢迎阅读内容。

【JS】postMessage 用法(可以给iframe传值)(javascript postmessage)

文章相关热门搜索词:js发送post请求获取数据,js $.post,js发送post,js 发送post请求,js 发送post请求,js发送post请求json,js发送post请求json,js $.post,内容如对您有帮助,希望把文章链接给更多的朋友!

跨文档消息,有时候也简称为XDM(cross-document messaging)

是一种在不同执行上下文(如不同源的页面)间传递信息的能力。例如:www.wrox.com上的页面想要与包含在内嵌窗格中的p2p.wrox.com上面的页面通信XMD的核心就是postMessage()方法postMessage()方法:将message传递给指定窗口postMessage(data,origin)方法接受两个参数:let iframeWindow = document.getElementById('myframe').contentWindow;iframeWindow.postMessage('aaa', 'http://www.wrox.com');1. data: - 要传输的数据,推荐使用字符串格式,其他格式的浏览器的兼容性不好- 如果要传输结构化数据,可以通过JSON.stringify处理,接收时用JSON.parse转换回来2. origin: - 指明目标窗口的源,协议+主机+端口号[+URL],URL会被忽略,所以可以不写- 如果不想限制接收目标源:可以传 '*'- 如果目标与当前窗口同源:可以传 '/'接收消息window.addEventListener('message',(event)=>{// 判断源路径是否来自预期发生者if(event.origin.includes('http://www.wrox.com')){// 获取传过来的数据console.log(event.data)// 再传回去一条消息event.source.postMessage('已收到消息', 'p2p.wrox.com')}})// event包含3个参数- event.data: 接收到的数据- event.origin: 发送消息的文档源- event.source: 发生消息的文档中window对象的代理代码案例目录结构:

父页面(main.html):<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <h1>主页面</h1> <iframe id="child" src="./child.html"></iframe> <div> <h2>主页面跨域接收消息区域</h2> <div id="message"></div> </div> </body> <script> /* -------------iframe跨域数据传递--------------- */ //传递数据到子页面 window.onload = function() { document.getElementById('child').contentWindow.postMessage("主页面消息", "/") } //接受子页面传递过来的数据 window.addEventListener('message', function(event) { document.getElementById('message').innerHTML = "收到" + event.origin + "消息:" + event.data; }, false); </script></html>子页面(child.html):<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <h1>子页面: </h1> <div> <div id="message"></div> </div> </body> <script>//接收父页面传过来的数据window.addEventListener('message', function(event) {// 因此判断接收的消息源是否是父页面if (event.origin.includes("http://127.0.0.1:8848")) {console.log(event);document.getElementById('message').innerHTML = "收到" + event.origin + "消息:" + event.data;//把数据传递给父页面 > top.postMessage(要传递的数据,父页面的url访问地址)window.top.postMessage("子页面消息收到", 'http://127.0.0.1:8848');}}, false);</script></html>运行结果:

本文链接地址:https://www.jiuchutong.com/zhishi/289606.html 转载请保留说明!

上一篇:格里博耶多夫运河和滴血救世主教堂,俄罗斯圣彼得堡 (© Tomas Sereda/Getty Images)(格里戈里耶奈尔尤伯夫)

下一篇:瓜纳华托,墨西哥 (© AI NISHINO/Alamy)(瓜纳华托大学世界排名)

  • 运输费用怎么计算出来
  • 固定资产待抵扣进项税
  • 职工福利按工资发放吗
  • 收不回来的装修钱怎么办
  • 代缴水电费如何做账
  • 三方协议缴款账户状态错
  • 退货折价的账务处理分录
  • 以前年度损益调整会计分录
  • 公司购买厂房需要交房产税吗
  • 应交消费税通过什么科目核算
  • 现金折扣为什么计入主营业务收入
  • 购买的车位是否有产权证
  • 工程项目劳务分包合同范本
  • 总公司亏损分公司盈利如何处理
  • 一次性工伤医疗补助金和一次性伤残补助金
  • 收取职工房租 算收入吗
  • 递延收益的所得税影响
  • 印花税减免性质代码和项目名称小规模
  • 证券投资基金管理办法
  • 高速公路抵税
  • 现金折扣应不应计入成本
  • 外购软件可以加计扣除吗
  • 企业会计准则固定资产解释
  • 债务重组损益如何确定
  • 劳务费的现金流量是什么
  • 汇算清缴的租赁费怎么算
  • 电子专用发票没有发票代码
  • 事业单位收到租金收入
  • 自主研发全流程
  • 管理费用部分科目怎么填
  • 法定盈余公积金转增资本
  • linux中怎么安装GUI
  • 最小的摄像头是多大
  • 公司报销医疗费用公司医保里面的钱也报吗
  • 企业的各项费用
  • 都有哪些收据可以抵税
  • php中strstr
  • php执行linux脚本
  • 资产减值损失会影响利润总额吗
  • 小程序报错怎么解决
  • 用php写的一个冒号的句子
  • javascript手机编程
  • 简单解决微信文案的方法
  • 毕业论文笔记怎么写
  • 豪华车消费税的计算公式
  • java中public修饰什么
  • 减免增值税记账
  • 个人所得税申报退税能退多少
  • 财务会计和预算会计金额可以不等吗
  • 企业应付账款的借方登记
  • 不征税收入怎么做会计分录
  • 企业从银行取得短期贷款存入银行,属于( )类型变化业务
  • 投资性房地产转为非投资性房地产
  • 给员工缴纳的雇工保险
  • 土地承包经营合同生效条件
  • 日常生活中各种形式的能量的转化
  • 坏账确认方法有哪些?
  • 资产处置损益在资产负债表哪里
  • 吊装费是属于什么报销项目
  • 维护费要交税吗
  • win10升级后c盘莫名其妙满了
  • linux 命令帮助
  • windows7问题解决方案
  • win7设置在哪里设置
  • mac怎么设置图片为桌面
  • rpm命令的作用是什么
  • Windows文件夹共享权限不足
  • mac怎么管理字体大小
  • win1020h2正式版
  • Android的AsyncTask官方API谷歌翻译版
  • Building Unity3D Plugins for Android
  • button button button
  • vue的挂载
  • unity3d跨平台
  • 如何开具红字发票明细
  • 年应税销售额超过小规模纳税人标准的企业
  • 新市税务所电话
  • 教育培训行业的前景
  • 棚户区改造的回迁房能办房产证吗
  • 北京市地税总局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设