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

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

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

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

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

html: 

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也会有所需的数据了 

你可能感兴趣的:(前端)