vue跨窗口通信之新窗口调用父窗口方法实例
导读:收集整理的这篇文章主要介绍了vue跨窗口通信之新窗口调用父窗口方法实例,觉得挺不错的,现在分享给大家,也给大家做个参考。 众所周知,在vue中bus等工具只能跨组件通信,如何实现跨窗口通...
收集整理的这篇文章主要介绍了vue跨窗口通信之新窗口调用父窗口方法实例,觉得挺不错的,现在分享给大家,也给大家做个参考。 众所周知,在vue中bus等工具只能跨组件通信,如何实现跨窗口通信呢?
场景如下,我们在A窗口中新开了B窗口,想在B窗口中调用A窗口的方法?
这里还总结了一点window事件的方法:
window.oPEner.location.reload() 这样关闭B窗口后会刷新整个A窗口,体验效果不是很好
window.onunload 在关闭窗口之后触发
window.opener 获取父页面的window元素
注:
1.window.opener 实际上就是通过window.open()打开的窗体的父窗体
2.window.opener.父页面中的方法(); //调用父页面中的方法
location.reload() 刷新页面
window.close() 关闭window.open()打开的窗口
window.onbeforeunload 关闭窗口前执行事件
A窗口:
mounted() { // 注:getBpageList是提供给新窗口B触发的,实际上触发的是A的getApageList方法 window["getBpageList"] = (params) => { this.getApageLists(params); } ; methods: { async getApageLists(){ let res = await getPageList() ...... } , //点击新打开一个窗口B detailsView(data) { window.open(`....../${ data.id} `); } , }
b窗口调用A窗口方法
注:具体场景可以很多,比如放在点击事件中,或者关闭窗口前等 methods:{ emITAwindow(){ //window.opener 获取父页面的window元素 //判断A窗口有没有window.opener和getBpageList是不是个方法 if (window.opener & & window.opener.getBpageList) { window.opener.getBpageList(params); } else { //window.opener.frames[0] 获取到的window对象 window.opener.frames[0].getBpageList(params); } } }
总结
到此这篇关于vue跨窗口通信之新窗口调用父窗口的文章就介绍到这了,更多相关vue新窗口调用父窗口内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:- Vue全家桶入门基础教程
- Vue全家桶实践项目总结(推荐)
- 一篇Vue、React重点详解大全
- vue项目刷新当前页面的三种方式(重载当前页面数据)
- vue通过url方式展示PDF的几种方法
- vue全家桶-vuex深入讲解
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: vue跨窗口通信之新窗口调用父窗口方法实例
本文地址: https://pptw.com/jishu/609434.html