关闭父窗口弹出的子窗口的时候静态刷新父窗口里的某一表格数据

项目需求

要求在父窗口的数据列表里点击数据弹出子窗口预览,在弹出的预览页编辑内容之后关闭子窗口,同时静态刷新数据列表,而不是刷新整个父窗口。
如果在子窗口这样写是可以刷新父窗口但会全屏白一下不符合要求

// 刷新父窗口
window.opener.location.reload();
window.open("about:blank", "_top").close();

思路

思路一、父子组件之间传参。
子窗口传参给父组件,父窗口监听参数变化调用刷新方法。
思路二、cookies传参。
子窗口关闭时发送参数到cookies,父窗口监听cookies变化。
后来发现父窗口在不做任何操作的情况下虽然接收到了参数但没法调用局部刷新的代码。
最后写了一个时时侦听参数变化的代码可以实现了但是由于感觉这样太消耗资源还是被否了。

mounted(){
	//每秒钟检测一次cookies中refreshPage的变化
    setInterval(()=>{
    	if(this.$cookies.get('refreshPage') === 'true'){
        	this.$cookies.set('refreshPage','false');
            this.getReturnList();//局部刷新的方法
     }
   },1000)
}

解决方法

最后在网上找了一段代码完美解决了,如下:
父窗口:

mounted(){
            this.getReturnList();
            // 将refreshPage方法绑定到window下面,提供给外部调用
            window['refreshPage'] = () => {
                this.getReturnList();  //局部刷新的方法
            }
        },

子窗口:

window.opener.refreshPage()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值