postMessage解决Chrome的跨域传值问题(chrome不支持showModalDialog)

一、父页面向子页面传值:

a.父页面监听

    window.addEventListener('message',function(e){    

                console.log("父 接受 子",e)

                var ret = e.data;

                //处理数据 

        },false);

b.子页面发送

//1.获得父页面

  parentWindow = window.opener;

//2.利用postMessage向指定的父页面传值,*代表所有均可访问,也可添加指定的url

  parentWindow.postMessage(“来自子页面的数据”, '*');

        

二、子页面向父页面传值:

//a.子页面监听

window.addEventListener("message", function (e) {

        console.log("子->父", e.data)

//数据处理       

    }, false)

//b.父页面在子页面打开成功后传值

       //1.使用window.open打开子页面

  var ret = window.open (strUrl, array, "dialogHeight:500px;dialogWidth:600px;center:Yes;Help:No;Resizable:No;Scroll:0;Status:no;Copyhistory:yes;")  ;

       //2.子页面打开之后,父页面传值(使用settimeout,否则页面可能没打开成功就走到这一步)

setTimeout(

              function(){

                  ret.postMessage(“父页面传递的值”,strUrl)

              }, 300

            )        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值