今天工作中遇到一个问题,vue2.x架构下,在A页面中window.open一个新窗口B,然后新窗口然后在B窗口里触发A窗口事件。
想了下决定用portMessage来实现
下面上代码
A窗口
methods:{
AbuttonEvent(){
window.open(href, "_blank");
}
}
复制代码
在A页面里,通过按钮事件AbuttonEvent触发,来新打开一个窗口。
B窗口
methods:{
BbuttonEvent(){
let href = window.location.origin;
window.opener.postMessage("message", href);
}
}
复制代码
在B页面里,通过一个按钮事件BbuttonEvent触发,来向A窗口发送消息
在项目的main.js里加入代码
Vue.prototype.$bus = new Vue();
window.addEventListener("message", (e) => {
console.log(e, "sssssssssssssssssssssss");
Vue.prototype.$bus.$emit('getTable')
});
复制代码
剩下来的就是在A窗口里接收$bus,然后触发A窗口的事件。
以上是我排除坑的代码,下节我再补充我遇到的坑以及解决办法,有更好方案的大佬欢迎留言。下班。。。。。。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END




















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)