目标=在Firefox的新选项卡中打开,而不是在Chrome(Svelte)中打开 [英] target="_blank" opens in new tabs in firefox but not chrome (Svelte)

查看:0
本文介绍了目标=在Firefox的新选项卡中打开,而不是在Chrome(Svelte)中打开的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有几个内部链接和几个外部链接的小型单页应用程序。我希望在新选项卡中自动打开所有外部链接,因此我将html设置如下:

    <base target="_blank" />

这在Chrome中运行得很好。当我点击导航栏上的链接时,我的网站会在同一个标签页内导航,而当我点击外部链接时,它会尽职尽责地在新的标签页中打开。

然而,当我使用Firefox(几个测试版本)访问我的网站时,每个单独的链接,甚至是我导航栏上的内部链接,都会在一个新的选项卡中打开。

如何更正此问题,以便在所有浏览器的新选项卡中仅打开外部链接? 谢谢

推荐答案

静态解决方案将在内部链接上显式显示,即在这些链接上添加target="_self"

如果您不想这样做,根据您的设置,Java脚本也可能提供帮助。

假设您的内部链接都是相对链接,或者至少是服务器绝对链接,并且假设您的页面是静态的(比如DOMContentLoaded之后没有添加链接到页面),则下面的Java代码片断可以解决这个问题:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
document.addEventListener('DOMContentLoaded', () => {
  for (const externalLink of document.querySelectorAll('a[href^=http]'))
    externalLink.target = '_blank';
})
<a href="https://google.com">Google</a>
<a href="/">Some internal link</a>

正如另一个家伙所指出的,当然,只有当您的链接可以从文档访问时才有效(如果它们驻留在shadowDOM中则不起作用)。

这篇关于目标=在Firefox的新选项卡中打开,而不是在Chrome(Svelte)中打开的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆