vue 实现跨域通信
最近遇到的问题是:B项目引用了A项目,执行完A项目的一个方法后,需要去直接调用B项目。用postmessage即可实现:
A项目发出消息
var msg = {}
msg.changTab = data.channel
window.postMessage(msg,'/')
B项目接收:
mounted:{
window.addEventListener('message', this.reviceMsg)
}
methods:{
reviceMsg(e) {
const _this = this
if (e && e.data) {
if(e.data.changTab){
this.changTab()
}
}
}
}