iframe 跨域传参

parent-index.html: (本地起服务,放在5000端口上)

<div class="content">
    <iframe src="http://localhost:5001/public/second.html" id="sendMessage" name="sendMessage" οnlοad="resize()"></iframe>	
</div>
<script type="text/javascript">
//当前脚本
function resize() {
    var ifr = document.getElementById('sendMessage');
    //使用iframe的window向iframe发送message。
    ifr.contentWindow.postMessage("123", "http://localhost:5001");
    window.addEventListener('message', function (e) {
        alert('回传 ' + e.data)
    })
}
</script>

child-second.html: (本地起服务,放在5001端口上)

<div class="content"> 
    <div id="howMuch">xxxxx</div>
</div>
<script type="text/javascript">
    window.addEventListener('message', receiver, false);
    function receiver(e) {
       if (e.data) {
           console.log(e)
           // 注释掉的为单次父子交互
           // var obj = {'name': 'qwer','age': 'xxx'}
           // e.source.postMessage(JSON.stringify(obj), e.origin);
           // console.log(e.data)
          document.getElementById('howMuch').onclick = function second() { 
              // 父子建立联系后,儿子html可以通过点击事件多次主动向父亲传值
              var obj = {'name': 'qwer','age': 'xxx'}
              window.parent.postMessage(JSON.stringify(obj), 'http://localhost:5000')
          }
      } else {
         alert(e.data);
     }
}
</script>

.

转载于:https://www.cnblogs.com/crazycode2/p/11012743.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值