iframe 通信(postMessage)

12 篇文章 0 订阅
9 篇文章 0 订阅

       最近小编的公司在开发ERP系统,为了节约时间,有几个系统需要内嵌(iframe),但是有个需求,在一个内嵌项目中,需要重新打开另一个项目,每一个项目都是内嵌的iframe,因此让小编愁了好一会,后面选择了postMessage方式来实现的通信。

postMessage Api,有兴趣可以自行查看。

实现过程就是

     1:在内嵌项目中使用top.postMessage('传递的数据,尽量是字符串','需要接收消息的window域名')

     2:在接受页面用 window.addEventListener("message", (e)=> {});来接受消息

过程和API上的基本类似,只是在实现过程中遇到了几个问题,在主要的就是在需要发送消息的页面获取不到另一个系统的域名(公司每一个项目都会有开发/测试/正式的),不想再代码里面一直改,所以这个问题困扰了小编很久,完了最后没办法把域名换成("*")来解决的。但是这样会有很多问题,如果有多个需要通信的iframe,那么就会容易造成误传。当然这也是小编项目中的是在问题,通常的API就可以解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值