页面与内嵌iframe的数据通信

例如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页面一样接收和发送信息

上一篇:001 centos6、redhat6 安装yum


下一篇:数学建模优化和仿真模拟的区别001