位置: 编程技术 - 正文

使用postMesssage()实现iframe跨域页面间的信息传递(使用权资产)

编辑:rootadmin

推荐整理分享使用postMesssage()实现iframe跨域页面间的信息传递(使用权资产),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:使用灭火器时要对准火焰的什么部位喷射,使用粗盐热敷十大危害,使用的英文,使用的英文,使用粗盐热敷十大危害,使用灭火器时要对准火焰的什么部位喷射,使用的拼音,使用时间,内容如对您有帮助,希望把文章链接给更多的朋友!

由于web同源策略的限制,当页面使用跨域iframe链接时,主页面与子页面是无法交互的,这对页面间的信息传递造成了不小的麻烦,经过一系列的尝试,最后我发现有以下方法可以实现:

1. 子页面url传参

简单说来就是把所有需要传递的参数加到与主页面同源的url上,将子页面重定向到该url,然后主页面通过iframe的src获取这些参数

过程非常复杂,不建议使用这种方法

2. postMessage()

postMesssage()是HTML5提供的一个基于事件的消息传输API,可以实现跨文本档、多窗口、跨域消息传递。

postMessage(data,origin)方法接受两个参数

1.data:要传递的数据,html5规范中提到该参数可以是JavaScript的任意基本类型或可复制的对象,然而并不是所有浏览器都做到了这点儿,部分浏览器只能处理字符串参数,所以我们在传递参数的时候需要使用JSON.stringify()方法对对象参数序列化,在低版本IE中引用json2.js可以实现类似效果。

2.origin:字符串参数,指明目标窗口的源,协议+主机+端口号[+URL],URL会被忽略,所以可以不写,这个参数是为了安全考虑,postMessage()方法只会将message传递给指定窗口,当然如果愿意也可以建参数设置为"*",这样可以传递给任意窗口,如果要指定和当前窗口同源的话设置为"/"。

发送消息(子页面)

使用postMesssage()实现iframe跨域页面间的信息传递(使用权资产)

由于部分浏览器只能处理字符串参数,我们需要先使用JSON.stringfy()将参数转换为字符串,然后再接收页面使用JSON.parse()转换回对象。

接收消息

对于子页面传递过来的参数,我们可以通过监听window的message事件来获取:

message事件有几个重要属性

1.data:顾名思义,是传递来的message

2.source:发送消息的窗口对象

3.origin:发送消息窗口的源(协议+主机+端口号)

通过postMesssage()方法和message事件就可以实现跨域传递消息了,需要注意的是,在demo中我们是通过子页面向父页面传递消息,所以使用的是window.parent发送,window接收:

window.parent.postMessage(dataJson, '*');

如果是从主页面向子页面就需要对换,使用window发送,window.frames[0]来接收了。

以上内容是小编给大家介绍的使用postMesssage()实现iframe跨域页面间的信息传递,希望对大家有所帮助!

分析js闭包引起的事件注册问题 背景:闲暇时间看了几篇关于js作用域链与闭包的文章,偶然又看到了之前遇到的一个问题,就是在for循环中为dom节点注册事件驱动,具体见下面代码:

javascript中不易分清的slice,splice和split三个函数 每每见到这三个函数,我都会很懵,一定要到网上搜搜;今天,恰巧又见到了它们,所以想必是时候为它们做个笔记啦1.slice(数组)用法:array.slice(star

js解决movebox移动问题 本文为大家分享了js解决movebox移动问题,并且取消图片默认拖动事件的相关操作,供大家参考,具体内容如下html:!DOCTYPEhtmlhtmlheadmetahttp-equiv="Content-Type"co

标签: 使用权资产

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

上一篇:JavaScript面向对象程序设计教程(javascript面向对象编程指南)

下一篇:分析js闭包引起的事件注册问题(js闭包解决了什么问题)

  • 增值税专用发票有效期是多长时间
  • 施工项目预缴税率是多少
  • 补贴收入属于什么分配
  • 工会经费余额在借方怎么办
  • 款项已付发票未到,怎么做凭证
  • 税务等级低有什么影响
  • 人员新增申报表
  • 建筑行业增值税税负率计算公式
  • 增值税发票认证是什么意思
  • 发放股票股利的账务处理
  • 企业外购的无形资产摊销,可以加计扣除吗?
  • 公司职员聚餐取个名字
  • 扣个税必须要交社保吗
  • 文化事业建设费征收对象
  • 农产品普通发票抵扣怎么申报
  • 进项税大于销项税是不是不用交税了
  • 金蝶资产减值损失取数计算公式
  • 小规模企业所得税按季度还是按年
  • 腾讯电脑管家流量监控不显示
  • 代扣代缴税款的完税凭证抵扣期限
  • 私账的钱怎么弄到公账
  • 高新技术企业的税收优惠政策
  • thinkpad预装的office怎么激活
  • xshell远程连接linux命令
  • xp系统鼠标右键不能用怎么办
  • 收到短期借款会计分录怎么做
  • 百香果的功效与作用及食用方法果的籽能嚼碎吃吗?
  • 会计结账时账户余额为零
  • 存货出入库的账务处理
  • 开发票为什么要对公账户?
  • 认缴制和实缴制的区别
  • 产品补发原来的要退吗
  • 预收货款尚未发货
  • 开票金额应该含增值税吗
  • 租赁公司成本如何计算
  • 分成收入计入什么科目
  • 购买的烟酒怎么入账
  • 两处取得收入,如何进行个税的申报?
  • 出资人和法人承担责任
  • 劳务公司是怎么运作的
  • 固定资产清理损益表怎么填
  • 未分配利润实际没有钱分配是什么原因
  • 分公司撤销跨区经营
  • 暂估入账应该如何操作
  • 会计手工做账的目的
  • 事业单位整体转让
  • 应付股利科目怎么结转
  • 疫情防控重点保障物资生产企业可以按月
  • 退货销售折让会计分录
  • 应付工资是应付账款吗
  • 付款退回在现金里怎么查
  • 出售设备账务处理
  • 营改增的范围
  • 支付借款利息需要交税吗
  • 自产货物赠送客户账务处理
  • 暂估成本估多了怎么办
  • 结转公允价值变动
  • 报销程序是什么
  • 未实现融资收益借贷方向
  • 服装销售怎么做
  • sql server语句查询
  • mysql详细教程
  • 利用的英文
  • ubuntu 安装zsh
  • mac如何设置启动系统
  • mac开机后蓝屏没反应
  • 最新bios界面
  • win10正版授权图标
  • 我们如何成为专业人员
  • win7系统电脑怎么连接wifi
  • win10粘滞键怎么解除
  • css网页布局在线生成
  • python自动报表
  • Node.js中的全局对象有
  • linux管道定义
  • css制作热点新闻板块
  • 青岛市税务局长魏
  • 小额贷款公司在职人员和离职人员情节哪种轻
  • 企业少缴社保怎么补偿
  • 为什么我电脑登微信显示二维码失效
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设