window.open链接跳转新窗口,谷歌不生效

文章描述了如何在ElementUI的头部下拉框点击事件中,避免浏览器限制,通过创建新的`<a>`元素并设置`target=_blank`属性来实现点击后跳转到后端返回的非本系统的网络链接并在新标签页打开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:

点击后端返回的非本系统的网络链接并跳转,要求在新页面打开。如果是本标签打开直接window.location.href ="/url"。但是现在要求新标签页,window.open有浏览器限制。

 

解决方法:

  element ui 的头部下拉框的点击事件
        handleCommand(command) {
            if (command == '商户中心') {
                merchantCenter().then((res) => {
                    let urlHref = res.data;
                    // window.location.href = urlHref;
                    this.createSuperLabel(urlHref,'shop');
                });
            }
        },
创建元素跳转
        createSuperLabel(url, id) {
            let a = document.createElement('a');
            a.setAttribute('href', url);
            a.setAttribute('target', '_blank');
            a.setAttribute('id', id);
            // 防止反复添加
            if (!document.getElementById(id)) {
                document.body.appendChild(a);
            }
            a.click();
        }

 

Vue中,你可以通过两种方式实现路由打开新窗口。第一种方式是使用标签实现,你可以在`<router-link>`标签中设置`tag="a"`和`target="_blank"`属性来实现新窗口打开。例如: ```html <router-link tag="a" target="_blank" :to="{name:'homePage',query:{id:'Fate'}}">I'm Fate</router-link> ``` 需要注意的是,只有在`tag="a"`模式下,`target="_blank"`属性才会生效。\[1\] 第二种方式是在函数中实现页面跳转。你可以使用`$router.resolve`方法来生成路由链接,并使用`window.open`方法来打开新窗口。例如: ```javascript methods: { linkTo() { let query = { id: "Fate" }; let routeData = this.$router.resolve({ name: "searchGoods", query: query }); window.open(routeData.href, '_blank'); } } ``` 这样,在点击事件或者函数中调用`linkTo`方法即可实现路由打开新窗口。\[2\] 如果页面有多个跳转,你可以分别使用`$router.resolve`方法生成同的路由链接,并使用`window.open`方法打开新窗口。例如: ```javascript let routeOne = this.$router.resolve({ name: "router-one", query: { id: 1 } }); window.open(routeOne.href, '_blank'); let routeTwo = this.$router.resolve({ name: "router-two", query: { id: 1 } }); window.open(routeTwo.href, '_blank'); ``` 这样就可以实现多个路由的新窗口打开。\[3\] #### 引用[.reference_title] - *1* *2* [【Vue】路由打开新窗口](https://blog.csdn.net/qq_24744451/article/details/88994118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vue路由跳转打开新窗口](https://blog.csdn.net/qq_45886144/article/details/130186782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值