例如A页面里的iframe嵌套B页面,B页面获取A页面的数据
1.通过url,参数拼接,这种适用于单向传递参数,列如做分享功能
具体为:a系统通过iframe的src携带参数,b在页面中通过window.location 获取参数并存入locaStorage
2.通过postMessage方法,此方法可以建立不同 origin 的两个窗口之间的双向数据通信,这种方式可以建立不同域名的页面间的双向通信,可用于较复杂的场景
具体为:a页面通过postMessage()发送消息,b页面中通过window.addEventListener(‘message’,fn())接收,存入localStorage
// An highlighted block
域名1下的a页面
<iframe id="iframe" src="http://www.domain2.com/b.html"></iframe>
<script>
var iframe = document.getElementById('iframe');
iframe.onload = function() {
// 向b页面发送跨域数据
iframe.contentWindow.postMessage('来自a的消息', 'http://www.domain2.com');
};
// 也接受b页面发的数据
window.addEventListener('message',(e) => {
console.log(e.data);
}, false);
</script>
b页面同a页面一样接收和发送信息