如何在新选项卡(而不是新窗口)中打开链接?

IT技术 javascript html
2021-02-02 02:34:08

我有一个“打开”按钮,它“计算”应该在新选项卡中打开的链接。我尝试使用:

window.open(url, '_blank');

但这会打开一个新窗口。

我还尝试了以下方法:

<form id="oform" name="oform" action="" method="post" target="_blank">
</form>

...

document.getElementById("oform").action = url;
document.getElementById("oform").submit();

尽管如此,还是会打开一个新窗口,而不是一个新选项卡。

使用 simple <a href...>with 时target='blank',链接将在新选项卡中打开。

有解决办法吗?

6个回答

更新 [ 2019 ] 当您将目标设置为_blank. 弹出窗口的日子早已一去不复返了。我们现在可以使用:

 <a href="some url" target="_blank">content of the anchor</a>

大多数理智的浏览器会在新选项卡中打开新窗口。


CSS3 通过属性target-new支持“在新标签页中打开”

target-new: window | tab | none;

更新 [ 2016 ]:正如其中一条评论所示,此方法从未进入 CSS3 规范。这不应该被使用。但是,可以看出大多数现代浏览器target='_blank'无论如何都会在新选项卡中打开链接,除非此后立即尝试调整新选项卡的大小。但是,在规范中似乎没有强制这种行为的机制。


[ 2011 ] 对于在受支持的新选项卡中强制打开的方法,请尝试以下操作:

<a href="some url" target="_newtab">content of the anchor</a>

否则,使用方法立即调整窗口大小,以确保弹出窗口阻止程序不会杀死您的弹出窗口

正如我在主要消息中所说,当使用 <a href=...> 时,它可以作为一个魅力,链接在新选项卡中打开。
2021-03-14 02:34:08
@Erik 在这些浏览器开始支持之前还需要一段时间。现在,您所能做的就是更改 firefox 中的 about:config,以强制执行该行为。
2021-03-31 02:34:08
这应该适用于 Firefox <a href="some url" target="_newtab">锚点的内容</a>
2021-04-03 02:34:08
但是有些网站是如何做到这一点的?
2021-04-06 02:34:08
不知道我明白如何使用它
2021-04-09 02:34:08

除了提到的 CSS3 target-new 选项 @anirudh4444 之外,您不能,最重要的是可能不应该。您试图控制用户的体验,而这很可能由用户决定。

我不确定这会阻止它被阻止。有一些弹出窗口阻止程序也可以防止生成新选项卡。您最好的选择(考虑到用户体验)是在不尝试操纵物理浏览器窗口/选项卡集合的情况下执行灯箱/模态效果。那只是我的两分钱。
2021-03-16 02:34:08
这样做对吗?
2021-03-17 02:34:08
如果您担心您的窗口被“阻塞”,请不要担心。如果用户单击普通链接,浏览器不会阻止该窗口。如果您使用 Javascript 打开这个新链接,那么您可能会遇到问题。
2021-03-17 02:34:08
我知道有些网站点击“登录”按钮会打开一个新标签
2021-03-27 02:34:08
许多浏览器会阻止弹出窗口。我希望在新标签页中打开链接,这样它就不会被阻止
2021-04-01 02:34:08

您可以使用以下任何一种,我在 6 个不同的浏览器中测试了它们。(Google Chrome、Mozilla Firefox、Microsoft Internet Explorer、Opera、K-meleon* 和 Seamonkey。)

  1. <a href="blaah" target="_blank">Blaah</a>
  2. <a href="blaah" target="_tab">Blaah</a>
  3. <a href="blaah" target="_new">Blaah</a>

它们的工作原理完全相同,选择完全取决于偏好。

*K-meleon,出于某种原因,当我点击链接时刚刚打开了我所在的页面。

请参阅stackoverflow.com/a/4964223/18192尽管它们可能都有效,但_blank还是推荐使用。
2021-03-25 02:34:08
当您第一次单击此类链接时,它们可能都有效。但是第二次单击此类链接时,它可能会打开一个新选项卡,或者它可能会在上次使用的同一选项卡中打开该 URL。Onlytarget="_blank"定义为始终使用新选项卡(或窗口,如果您的浏览器是这样配置的)。
2021-04-02 02:34:08

我能够使用“表单”元素解决这个问题。

function openNewTab(link) {
     var frm = $('<form   method="get" action="' + link + '" target="_blank"></form>')
     $("body").append(frm);
     frm.submit().remove();
}

有关完整的实施和详细信息,请访问我的帖子http://mukesh.in/force-open-new-tab-in-browsers-instead-of-windows/

或者看这个 JSFiddle

第一个链接坏了
2021-03-19 02:34:08
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会无效。
2021-03-21 02:34:08

您的表单具有 target="_blank"(包括前​​导下划线),而您的简单链接的 target='blank' 没有前导下划线。“_blank”是指定特定操作的保留字,但“blank”是特定窗口的名称,可能是新窗口。这就是为什么你会得到不同的结果。两者都是弹出窗口,但类型不同。

每个用户都可以最终控制弹出窗口是打开新窗口还是新选项卡。你对此无能为力。