vue中iframe嵌套页面父子组件互相通信

//父传子页面

 <iframe id="mainIframe" name="mainIframe"  ref="iframe" :src="URL" frameborder="0" scrolling="auto"  style="height: 100%;"></iframe>
 <script>

  export default {
    data() {
      return {
        URL:'http://10.1.1.28:8081/#/',嵌套页面的地址
        obj:{
        	a:1,
        	b:2
			}
      };
    },
    mounted(){
		this.parent()
	},
    methods:{
		parent(){
				const mapFrame = this.$refs['iframe'];
		        const iframeWin = mapFrame.contentWindow;
		        iframeWin.postMessage(
		           this.obj,
		            '*'
		        );
				}

	}
}
 </script>
//irame'页面进行接收‘’
mounted(){
window.addEventListener("message", function (e) {
	console.log(e.data,'iframe接收父页面数据')
})
}


//iframe向父组件通信,子传父

sone(){
	this.val={
	c:1,
	d:2
	}
	window.parent.postMessage(this.val, "*");
}



//父页面接收iframe
mounted(){
	window.addEventListener('message', (messageEvent) => { 
		console.log(messageEvent.data)
	})
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值