位置: 编程技术 - 正文

使用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闭包解决了什么问题)

  • 税控减免税额如何做分录
  • 公司合并是不是先变更股权
  • 债转股资金
  • 转让房地产增值税
  • 可税前扣除的工资
  • 预付账款下月做什么科目
  • 贴标企业
  • 出纳如何登账
  • 应付职工薪酬的账务处理
  • 公司借给个人的款项会计分录
  • 北京增值税纳税申报表在哪里打印
  • 小规模纳税季度申报
  • 税控盘的购买流程
  • 其他应收款怎么分析
  • 未抵扣的进项税可以留底多久
  • 企业进项税和销项税抵扣政策
  • 房地产开发企业取得的土地使用权用于建造
  • 退进项税留抵是什么意思
  • 税务局代开发票需要什么资料
  • 债券借贷业务属于表外业务吗
  • 个人将租来的房子转租如何交税
  • 物流公司油卡怎么抵税的
  • 楷体_gb2312字体
  • 营运资金主要包括什么
  • 服务佣金是什么意思
  • 腾讯手游助手闪屏怎么办
  • 行政事业单位预算由收入预算、支出预算组成
  • 贷款损失准备科目为负债类科目
  • 贷款发生减值
  • 实缴资金少有什么风险
  • 收回前欠货款会导致资产总额增加吗
  • 怎样搭建php开发平台
  • code ide
  • 酒店免费提供哪些服务
  • 企业备用金管理制度规定
  • 排灯节起源
  • 什么是应交税费未交增值税
  • php include和include_once
  • js返回上一步操作
  • php+web
  • 锁定vlookup快捷键
  • 6.824 Lab 1: A simple web proxy
  • 企业所得税是怎么产生的
  • 出口退税过期免税申报流程
  • 登记银行存款日记账的凭证有哪些
  • 记账复核是谁
  • 设计模式适配器模式代码编写
  • 织梦模板安装详细教程
  • python 自定义异常
  • 股权司法冻结及司法划转解释
  • 什么情况下要去y加ies
  • 其他债权投资有减值吗
  • 结算价格的确定原则
  • 企业出租房产增值税怎么计算
  • 小规模纳税人代账费用
  • 教育费附加减免性质代码
  • 生产车间人员工资期末结转
  • 办理产权证费用明细
  • 固定资产抵债交不交增值税
  • 公司的零星费用可以用对公转吗
  • 一年内到期的非流动负债是经营性负债吗
  • 本年利润每个月需要结转吗
  • 投入产出比的计算依据
  • 数据库sql server
  • 删除sql server2008
  • 按关键字13,24,37,90,53,34
  • linux系统啥样
  • xp系统的程序和功能在哪里
  • macos 关闭屏幕
  • Windows Server 2012服务器管理器的详细介绍
  • linux中ctrl+c
  • cent linux
  • win7定时静音
  • win7系统ie浏览器在哪里
  • win7系统电脑开机密码怎么设置
  • linux中ftp命令的用法
  • linux系统ll
  • UNITY 4.6.2 IOS 64-BIT SUPPORT
  • shell脚本实现文件重命名
  • python爬虫快速入门
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设