Vue页面通过Iframe嵌入别人页面并通过postmessage传递数据

接到一个新需求,自己的管理端不做登录,将页面嵌入别人的页面,直接在localstorage获取别人登录成功后存储到本地的用户信息,然后将其作为入参传入己方接口来获取自己所需的数据,但是这里会有一个问题就是不同域之间的localstorage不能跨域访问

这里就可以使用postmessage来做操作,具体如下:

上级页面需要这么写来传递数据:

===============================上级页面===================================

html: 

<iframe id="father" src="http://xxx.html"></iframe>

JS:

document.getElementById("father").contentWindow.postMessage("要传递的数据","*");

===============================上级页面===================================

下级页面需要这么写来接收数据: 

 我是写在public/index.html里的

    window.addEventListener('message', function (e) {
      console.log(e.data, "e.data===83");
      window.localStorage.setItem("userInfo", JSON.stringify(e.data))
    }, false);

这样在自己的域内的localstorage也会有所需的数据了 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值