Loading

postMessage页面间消息传递

1.消息发送

let routeData = this.$router.resolve({ path: '/web-view', });
const targetwindow = window.open(routeData.href, '_blank');
let message = { name: 'iframe', url: url }
setTimeout(() => {
    targetwindow.postMessage(JSON.stringify(message), '/')
}, 1000);

2.页面消息接收

created () {
  window.addEventListener('message', this.onMessageChange)
},
// 监听变化
onMessageChange (e) {
   let data = e.data
   if (data) {
        let info = {}
        try {
          info = JSON.parse(data)
        } catch (error) {
          info = data
        }
        if (info && info.name == 'iframe') {
          this.url = info.url
        }
   }
}
 beforeDestroy () { // 在组件生命周期结束的时候销毁。
    window.removeEventListener('message', this.onMessageChange)
  },

 

posted @ 2023-03-09 09:46  请叫我王小胖  阅读(151)  评论(0编辑  收藏  举报