子頁面
綁定方法接受父級頁面傳過來的值
window.addEventListener('message', messageEvent=> {
if(messageEvent.source!=window.parent) return;
console.log('子收到messageEvent:',messageEvent);
console.log('子收到vue的數據:',messageEvent.data);
this.wpsData = messageEvent.data;
// if(messageEvent.data&& this.onAjax){
// this.onAjax = false;
// this.getDriverInfoQp(messageEvent.data);
// }
})
父頁面代碼
<iframe src="http://120.224.237.214:81/qingpi/index.html#/driverIfram" frameborder="0" width="1000" height="800" id="mainIframe" ref="mainIframe" name="mainIframe" ></iframe>
<el-button @click="setData('我是vue數據')">向iframe中發送數據</el-button>
const mapFrame = this.$refs['mainIframe']; mapFrame.onload = function() { const iframeWin = mapFrame.contentWindow // iframeWin.postMessage('父傳給子的值', 'http://192.168.29.183:9527') iframeWin.postMessage({ value: '父傳給子的值', id: 'qp' }, '*') }
postMessage會多對次傳值,傳值帶判斷字符串傳值,根據id判斷是否是自己需要的值。
子傳父寫法
window.parent.postMessage({
value: '子傳給父的值',
id: 'qp'
},'*')
