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也会有所需的数据了
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)