使用 JavaScript 打开一个新的标签页但保留在当前标签页

28
使用window.open("http://www.google.com");函数是否可以在浏览器中打开一个新标签页,但将其后台打开并保持在当前页面? 当我点击超链接时,页面将保持不变,但链接将在新标签页中打开...
我尝试了这个解决方案,但它只适用于Firefox 链接,但我想在所有浏览器中实现。

10
对我来说看起来不是重复的问题。这个问题是关于将当前标签[窗口]保持在前景,而不是标签与窗口之间的区别。 - niry
stackoverflow.com/a/59509486/1916821 是解决这个问题的可能技巧之一。 - Vaha
2
绝对不是重复的。这太扯了。谁“审核”并决定将其关闭? - Emperor Eto
3个回答

8

如两个来源所证实的那样:source1source2

目前没有一种能在所有浏览器中都有效的功能。虽然有弹出窗口的选项,但这不是一个好主意,因为许多人使用弹出窗口拦截器。

重申第一个来源,每个用户决定是否在后台打开新标签页是浏览器设置问题。由于用户在其浏览器设置中做出此决定,因此您将获得不一致的体验。


2
我在打开一个非聚焦新标签页的主题上搜索了大约60分钟,截至2017年11月,这是唯一真正有效的答案! - poitroae
你说“每个用户决定在后台打开一个新标签页”,但是如果我为自己编写JavaScript,当我打开一个新的标签页(窗口)时,我仍然无法选择保持当前选项卡处于活动状态。因此,用户不能做出决定。 - Sam Hobbs

3
尝试以下方法可能会有所帮助。
<button id="open">open</button>

document.getElementById('open').onclick = function() {
    window.open('http://google.com');   
};

注意: 你不能使用JavaScript在后台打开标签页,因为这是根据用户在about:config中设置的偏好设置,你无法控制。在Firefox中,about:config中的设置为:

只有当您动态生成具有已按下控件键的单击事件时,才可能实现此目标。

例如,Ctrl +单击将始终打开新标签页并保留当前标签页。

browser.tabs.loadDivertedInBackground=true


1
感谢 @Pippin 的审核。 - Ashwin Parmar

-9

试试这段代码

 window.open(url,'_blank');

这并没有解决问题...它能打开但是失去了焦点。 - Karl Anthony Baluyot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接