1、父页面向子页面发送消息
let data = {type: 'answerResult', data: jsonData.data};
this.$refs.iframe.contentWindow.postMessage(data, '*');
2、子页面向父页面发送消息
let parentData = {type: 'passDataBack', data: passData};
window.parent.postMessage(parentData, '*');
3、接收消息方法
window.addEventListener('message', function (e) {})
封装
// 父页面
mounted(){
window.addEventListener("message", this.handleMessage)
},
methods:{
/**
* 向iframe传值的方法
* @param {Object} data
*/
sendMessage(data){
const iframe = this.$refs.iframePage.contentWindow;
iframe.postMessage(data, '*');
},
/**
* 监听子页面传过来的值的方法
* @param {Object} event
*/
handleMessage (event) {
// dosomething
}
}
// 子页面
mounted(){
window.addEventListener("message", this.handleMessage)
},
methods:{
/**
* 向父页面传值的方法
* @param {Object} data
*/
sendMessage(data){
window.parent.postMessage(data, '*');
}
/**
* 监听父页面传过来的值的方法
* @param {Object} event
*/
handleMessage (event) {
// dosomething
}
}
网友评论