JavaScript - 点击按钮在新标签页中打开给定的URL

154

我想要一个按钮,可以跳转到指定的网址并在新标签页中打开。如何实现这个功能?

15个回答

205

使用这个:

<input type="button" value="button name" onclick="window.open('http://www.website.com/page')" />

这个方法适合我,它会打开一个真正的新“弹出”窗口,而不是一个新的完整浏览器或选项卡。您还可以向其中添加变量,以防止它显示特定的浏览器属性,如下所示:

onclick="window.open(this.href,'popUpWindow','height=400,width=600,left=10,top=10,,scrollbars=yes,menubar=no'); return false;"

3
@wong2,也许你需要修改回答为这个。当前选择的回答太冗长了,不够高效。 - CSS

119
在JavaScript中,你可以做到:

window.open(url, "_blank");

45

添加target="_blank"应该就可以了:

<a id="myLink" href="www.google.com" target="_blank">google</a>

3
我明白了,抱歉我没有注意到。那么,您可以将链接样式设置得看起来像一个按钮。如果您正在使用jQuery UI,只需使用button即可实现。 - Tim Büthe
1
非常棒的解决方案,适用于我们这些只是涉猎网页设计的大多数人!谢谢! - SMBiggs
2
+1 是因为你提供了一个很好的解决方案,适用于那些寻找简单的“在新标签页中打开链接”的答案,如果他们没有使用按钮。 - user295583058
有很多合理的理由可以解释为什么你必须使用<button>来代替<a>作为链接。例如,你正在使用一个HTML模板,作者基于<button>元素样式化了社交图标,如button.social-icon{ width:... }。编辑作者的样式不是一个好主意,因为“更新”过程会让你痛苦不堪。 - Ahmad Maleki
工作正常。非常感谢。 - Geshan Ravindu
显示剩余2条评论

27

你可以忘记使用JavaScript,因为浏览器决定是否在新标签页中打开它。你最好的选择是使用以下方法:

<form action="http://www.yoursite.com/dosomething" method="get" target="_blank">
    <input name="dynamicParam1" type="text"/>
    <input name="dynamicParam2" type="text" />
    <input type="submit" value="submit" />
</form>

无论客户端使用哪个浏览器,由于 target="_blank" 属性,此链接将始终在新标签页中打开。

如果您只需要重定向而没有动态参数,您可以像Tim Büthe建议的那样使用带有 target="_blank" 属性的链接。


1
已按要求工作(在Chrome、Firefox和IE10上测试过):) - Zeeshan

16

我偏爱的方法有一个优点,那就是标记中没有嵌入JavaScript:

CSS

a {
  color: inherit;
  text-decoration: none;
}

HTML

<a href="http://example.com" target="_blank"><input type="button" value="Link-button"></a>

2
嗯,我想我有了一种新的首选方法。 - Halter
请优先使用 a input[type=button] CSS 选择器,而不是仅使用 a - RixTheTyrunt

12

使用 window.open 而不是 window.location 来打开一个新的窗口或标签页(根据浏览器设置)。

你的演示无法工作,因为没有选择 button 元素。尝试使用 input[type=button] 或给按钮加上一个 id 并使用 #buttonId


7

使用javascript在新标签页中打开

 <button onclick="window.open('https://www.our-url.com')" id="myButton" 
 class="btn request-callback" >Explore More  </button>

2

我刚刚在表单标签下使用了target="_blank",在Firefox和Chrome中它可以在新标签页中打开,但在IE中会在新窗口中打开。


1
无论是选项卡还是窗口的打开,都由用户的浏览器选项决定。我不知道IE,但在大多数浏览器中,网页不能选择链接是在选项卡还是窗口中打开,但用户可以进行配置。 - joeytwiddle

1
尝试这个。
<a id="link" href="www.gmail.com" target="_blank" >gmail</a>

0
在React或Javascript中,我们可以这样做:

<button onClick={() => window.open(url, "_blank")}> content </button>

使用锚点标签:

<a href="url" target="_blank" > content </a>


你还可以用div或其他标签来替换按钮。 - Aun Shahbaz Awan

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