接到一个新需求,自己的管理端不做登录,将页面嵌入别人的页面,直接在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也会有所需的数据了