如何使HTML中的超链接a href在新窗口打开?

73

这是我的代码:

<a href="http://www.google.com" onClick="window.location.href='http://www.yahoo.com';return false;" target="_blank">test</a>

当您点击它时,它会带您前往雅虎,但不会打开新窗口?


4
你尝试过使用 window.open("location", target) 而不是 window.location 吗? - John
这个方法可行,@John 如果你提供完整的答案,我会标记它。谢谢。 - TheBlackBenzKid
1
有时候我会想念那些亲密而愉快的日子。当一个问题获得了26k+的浏览量和5个赞(顺便说一下,我很高兴成为第5个点赞的人),却因为不真实而被关闭时,我总是会发笑。保持真实。 - user1382306
4个回答

132
<a href="#" onClick="window.open('http://www.yahoo.com', '_blank')">test</a>

就这么简单。

或者不用JS。

<a href="http://yahoo.com" target="_blank">test</a>

1
我应该使用哪一个?为什么?谢谢。 - Cyborg
5
@Cyborg 第二种形式(没有JS)是推荐的方式:一个简单的链接_提示_在新标签页/窗口中打开。第一个例子(使用JS _onclick_)只应在其他选项由于_非常具体的技术原因_无法使用时使用(例如:如果某个js/css框架/库的某个组件建议您在特定情况下这样做)。 - Roimer
1
当然,如果您选择使用JavaScript,则可能应该将链接更改为按钮,并使用addEventListener而不是在HTML中嵌入JS。 - Roimer
我会尽量使用第二种方式,因为用户可以清楚地看到他正在打开什么(your_url/# 对此并不有帮助),而且我经常使用鼠标滚轮点击在新标签页中打开链接。目标会为我处理这个问题,但作为用户,我不会在此之前检查它,所以我只需使用 Ctrl+单击或鼠标滚轮单击即可在后台标签页中打开它。有趣的是,我认为 Ctrl+单击和鼠标滚轮单击是相同的操作,但我发现它们并不相同。第一种版本可以通过 Ctrl+单击打开正确的路径,但鼠标滚轮单击只会在新标签页中打开 url/#。第二种版本可以同时使用这两种方式。 - bugybunny
在同一浏览器窗口的新标签页中打开,而不是在新窗口中打开。 - undefined


1
在一个窗口中打开。
<a href="http://www.google.com" onclick="window.open(this.href, 'new', 'popup'); return false;">Open in a window</a>

有趣的回答,因为它试图通过弹出窗口来打开一个新窗口。不过,这种方法在弹出窗口阻止的情况下能行得通吗? - undefined

1

如果您想要打开一个新标签页或浏览器用户首选项设置为打开新窗口而不是标签页,则给出的答案可能很有帮助,因为原始问题是关于打开新窗口而不是标签页,这是对我有效的方法。

<a href="#" onClick='window.open(url, "_blank", "resizable=yes, scrollbars=yes, titlebar=yes, width=800, height=600);'>test</a> 

也请检查这个


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