使用 postMessage 解决 iframe 跨域通信问题

父页面发送消息

//父页面发送消息
//获取iframe元素
var myFrame = document.getElementById('myframe')

//iframe加载完毕后再发送消息,否则子页面接收不到message
myFrame.onload = function(){
  //给iframe 发送一条消息
 myFrame.contentWindow.postMessage('sendMsg','*');
}

子页面接受父页面消息

//子页面接受消息
//回调函数
function getParentMsg( event ) {
  console.log( '接受消息', event )
  //打印后的结果是  --- sendMsg
}
//监听message事件
window.addEventListener("message", getParentMsg, false);


子页面给父页面发消息

//给父页面发送消息,data为对象
parent.postMessage( {msg: 'sendMsgToParent'}, '*');

父页面接受子页面的消息


//回调函数
function getChildrenMsg(event) {
    console.log('msg', event)
}
//监听message事件
window.addEventListener("message", getChildrenMsg, false);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值