postMessage使用方法

2021-03-04  本文已影响0人  Cherry丶小丸子
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
    }
}
上一篇下一篇

猜你喜欢

热点阅读