使用window.open切换浏览器窗口

请添加图片描述

需求:列表和详情页来回切换,两个页面为浏览器两个页签之间切换,要求原窗口和目标窗口都不刷新

1.为两个页面起个名字

测试一页面
created () {
    window.name='test1'
},

测试二页面

created() {
    window.name='test2'
},

2.需要判断要跳转的页面是否已经打开,不判断的话会导致已经打开的页面刷新

若是需要刷新此处不用判断

//如果目标窗口未打开 window.opener是null  
if(window.opener){
 // 跳转到已经打开的页面
}else{
   //打开新页面
}

3.拿到要跳转的路由并跳转

if(window.opener){
	window.open('javascript:;', 'test1')   //这样写不会刷新页面
}else{
    const {href} = this.$router.resolve({path:'./temp1'})
    window.open(href,'test1')
}

4.如果需要传参数,按照路由传递参数规则传即可

比如:

        if(window.opener){
            window.open('javascript:;', 'test1')
        }else{
            const {href} = this.$router.resolve({path:'./temp1',query:{name:'123'}})
            window.open(href,'test1')
        }

在这里插入图片描述

5.其他情况

//1.若是要求只刷新目标页面
if(window.opener){
 	let res = window.open('javascript:;', 'test2')
    res.location.reload()
 }else{
    const {href} = this.$router.resolve({path:'./temp2'})
    window.open(href,'test2')
}
//2.若是要求刷新原页面
 if(window.opener){
 	window.open('javascript:;', 'test2')
    window.location.reload()
 }else{
 	//temp2配置的路由地址
    const {href} = this.$router.resolve({path:'./temp2'})
    // test2指的是目标页面window.name值
    window.open(href,'test2')
 }

举例代码中之写了一个页面的,切换的话两个页面都写好

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值