2010-10-19 119 views
71

我使用target="_blank"打开新标签中的链接......但在IE中它打开了一个完全合乎逻辑的新窗口,因为那是_blank应该这样做,我不知道如何target="_blank"行为在其他浏览器...有什么强制链接打开一个新的标签..如果浏览器支持选项卡...否则新建一个窗口HTML:如何强制链接在新标签中打开,而不是新窗口

+6

'target =“_ blank”'将在Firefox,Chrome和Opera的新选项卡中打开链接。其他两个浏览器,IE和Safari将在新窗口中打开它。 – 2010-10-19 17:04:08

+1

哇,你甚至不能使用命名的目标,并让IE在你的命名标签中打开新的链接。也就是说,如果您选择使用'target =“myName”'在新选项卡中打开链接,则具有相同目标的后续链接将不会在您的选项卡中打开,而是会打开一个新窗口。听起来像是一个可用性错误给我。感谢IE。 – Matthew 2012-05-27 16:23:23

回答

74

作为浏览器呈现的HTML的作者,没有办法做到这一点。至少我还没有知道。它很大程度上取决于用户自己设置的浏览器及其设置/首选项。

此外,你不应该强加给任何用户。浏览器是用户的财产。如果用户想要打开选项卡或新窗口中的所有链接,请让用户完成该操作。

很好,我们不能做某些事情。 target=_blank仍然被滥用,弹出窗口已被处决。

+18

+1!默认情况下,大多数浏览器在新标签中打开'target =“_blank”',但在过去,它会打开一个新窗口。在那里,我认为,无法强制链接在新标签中打开。 – jolt 2010-10-19 17:05:31

+6

应该存在一个选项来定义应该在新选项卡/窗口中打开哪些链接。这对外部链接很方便。我相信每个人都同意,在新选项卡中打开链接是大多数用户需要的方法。由于某些原因,IE和Safari在新窗口中打开_blank,但这可能是遗留行为,与用户的偏好无关。我相信大多数用户甚至不知道如何在浏览器中设置这种行为。 – 2010-10-19 17:18:27

+4

简单的解决方案不是试图强制您的链接在新标签*或*新窗口中打开。如果我想要一个新标签,我会中键单击,谢谢。 – bobince 2010-10-19 18:04:21

8

否,没有。

+4

直言不讳,点,确切答案=)我真的想编辑这个答案只是“不” – earcam 2014-07-17 22:38:44

1

浏览器处理新窗口与新选项卡的方式在浏览器的选项中设置,并且只能由用户更改。

+1

的'specs'参数中,用户首选项是一回事,但到目前为止我所学到的是,你需要让PHP为不同的浏览器设置不同的方法。 – Moon 2012-03-19 19:07:53

+1

真的吗?你怎么用PHP做到这一点? – 2012-05-27 11:54:54

0

你可以改变的方式Safari浏览器打开一个新页面在Safari>首选项>标签>>“自动”

0

您可以设置IE来打开新标签页的链接,“在标签中,而不是窗户打开网页”只进入设置菜单。

40

因为我掉进这个老问题,然后发现它现在是可能的(也许这个CSS选项不可用的话),我只想补充它是如何做到的更新:

<a href="[yourlink]" target="_blank" style="target-new: tab;">Google</a> 

这里有目标,新样式的选项:

target-new: window | tab | none 

没有测试none选项,也许它使用默认浏览器设置。

我确认这是Firefox和IE7-9。

+1

我有Safari 5.1.7。 (认为​​它是Windows的最新版本),而这对我来说不起作用。也许这是为Safari 6+?任何人都可以确认吗? – 2013-09-20 14:56:03

+3

那么,它没有很好的记录,我检查了caniuse.com,但没有信息,定义在这里:http://www.w3.org/TR/css3-hyperlinks/#the-target-new。 w3schools声称它不受任何浏览器支持(http://www.w3schools.com/cssref/css3_pr_target-new.asp),但它至少在Firefox和IE上运行,所以很难找到信息。 。 – Martin 2013-09-23 08:22:11

+1

http://www.w3schools.com/cssref/css3_pr_target-new.asp – 2013-10-25 20:14:37

1

我没有尝试,但我认为它在所有的浏览器:

target="_parent"

+1

新选项卡高度依赖于用户设置和浏览器代理。 “在新标签中打开链接”不应该在设计的任何地方作出要求,在过去的一年中了解到。 – Moon 2013-08-05 04:14:12

0

在Internet Explorer中,单击工具 - > Internet选项。点击常规标签 - >标签 - >设置。选择“遇到弹出窗口时” - >始终打开弹出新选项卡选项。点击确定。

-1

尝试用这样的

的Html JavaScript函数:

<a href="javascript:void(0)" onclick="open_win()">Target</a> 

的Javascript:

<script> 
function open_win() 
{ 
window.open("https://www.google.co.in/"); 
} 
</script> 
+0

谢谢你真的帮助 - 将href设置为'javascript:'! – 2015-11-07 00:02:31

5

我希望这将有助于你

窗口。开(URL, '_ NEWTAB');

+1

window.open返回一个可重用的windowObjectReference(或者,第二个arg窗口名称可以在后续调用中重用,以在同一个选项卡/窗口中加载不同的url)。然而,这并没有回答这个问题 - window.open没有提供强制选项卡或窗口的方法。 – earcam 2014-07-17 22:44:20

1
onclick="window.open(this.href,'_blank');return false;" 
1
a { 
    target-name: new; 
    target-new: tab; 
} 

的目标,新的属性指定新的地址链接是否应在新窗口或在现有窗口中打开一个新标签。

注意:target-new属性仅在target-name属性创建新选项卡或新窗口时起作用。

+1

它适用于最新的Firefox。 – 2015-01-21 11:15:02

0

这是可能的!

这似乎覆盖浏览器设置。希望对你有效。

<script type="text/javascript"> 
// Popup window code 
function newPopup(url) { 
    popupWindow = window.open(url,'popUpWindow1','height=600,width=600,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes') 
} 
</script> 

<body> 
    <a href="JavaScript:newPopup('http://stimsonstopmotion.wordpress.com');">Try me</a> 
</body> 
0

只需用“TARGET = _blank”将尊重是否使用选项卡或新窗口中用户/浏览器偏好,在大多数情况下是“做正确的事”。

如果指定了新窗口的大小,一些浏览器将使用它作为一个指标,需要一定的规模在这种情况下,总会使用新的窗口。 Stack overflow code example堆栈溢出

相关问题