锚链接1 可能具有一个 target
属性,该属性控制单击该链接时会发生什么。该属性的可能值之一是 _blank
,它告诉浏览器在单击该链接时打开一个新窗口(或选项卡,如果这是用户的偏好)。
这在 HTML 中曾经是“无效的”(也许只是 XHTML?),但人们还是使用了它,因为它有效。现在它在 HTML5 中完全有效。但这样做有充分的理由吗?
一个不好的理由:因为你喜欢这样。
无论喜欢与否,target="_blank"
都会改变默认行为。在同一页面中打开链接是默认行为(就像链接上带有 target="_self"
一样)。
也许您已经养成了在新窗口/选项卡中打开所有链接的个人习惯。这对您来说很棒,但可以安全地假设大多数用户最习惯默认行为。因此,他们不太适应您强加的不同行为。
如果它只是供您自己使用的内部工具,您可以随心所欲。如果其他人使用该站点,请保持原样。
还需要注意的是,用户可以通过 [Meta 键] 单击链接来强制链接在新窗口/选项卡中打开。这意味着两种行为都可用于链接。这也意味着,如果您喜欢打开新选项卡,您可以这样做,而无需将此行为强加于任何人。
通过使用 target="_blank"
,只有此行为可用。
一个不好的理由:仅仅因为您希望用户永远不要离开您的页面。
品牌 品牌 品牌!眼球宝贝。指标。参与度。
其他网站应该有正常风格的链接,但我们的网站很特别。我们的网站更重要,不应该被抛在后面。
一个不好的理由:“内部”链接和“外部”链接是不同的。
我们将使“内部”链接(指向我们自己站点的链接)正常运行,但“外部”链接(指向其他站点的链接)在新窗口/选项卡中打开。
这与上述两个原因有关,但可能更糟。您知道正常风格的链接是理想的,但如果这意味着用户离开您的网站,您愿意打破这种理想。
我从很多人那里听说过这是一种“约定俗成”。就像应该这样做一样。事实并非如此。
一个不好的理由:链接指向 PDF
或任何其他类型的非网络资源。为什么这应该如此不同?您仍然可以使用后退按钮返回。如果您想帮助用户下载它而不实际打开它,这是一个值得的 UX 目标,但可以通过不同的方式来实现。首先,使用 download
属性。
一个不好的理由:我的客户希望这样
我理解“我不想挑起这场争端”的想法,因为我们的精力是有限的。但奇怪的是,这竟然需要争论。如果他们不信任你这件事,他们信任你什么?
我可能会这样处理它
链接默认行为是正常打开。有些原因可能会让我们想要打破这种行为,我们可以一起讨论这些原因,但对于大多数链接,我们不会这样做。我们不想强迫用户接受我们的愿望,也不想因为这么小的事情而让他们感到沮丧。我们希望我们的用户对我们有好感。
希望您冷静而有学识的方法能让您的客户对您有好感。
一个不好的理由:它位于无限滚动页面上
无限滚动很棘手。从某种意义上说,它可能是良好的 UX,因为它可以无中断地传递内容。如果处理不当,它也可能是糟糕的 UX。在大多数情况下,“返回”到无限滚动页面应该带您回到您离开的位置。处理这个棘手的问题是您的工作。仅仅强制链接在新选项卡中打开以避免此问题出现,就等于逃避了您的工作。
一个好的理由:有用户发起的媒体正在播放
例如:音乐、视频、播客……
用户启动了它。切换页面会停止它。此时,要么让链接在新选项卡中打开,要么询问他们是否确定要离开页面。此时,您正在努力为他们做正确的事情,并让他们不要离开他们的位置。
我们之前在这里讨论过这个想法。如果媒体正在播放,请以特殊方式处理链接。当媒体未播放时,链接处于其正常状态。
虽然我这么说的时候,我查看了 YouTube,他们不会在更改视频时打扰您2。
一个好的理由:用户正在页面上处理某些内容,如果当前页面更改,这些内容可能会丢失。
也许用户正在写东西。或者整理东西。做任何类型的工作。单击链接并更改页面可能是网络上令人心惊肉跳、糟糕的时刻。我是否刚刚丢失了所有正在做的事情?
即使您采取措施确保他们不会丢失这些工作,让某人经历这种恐慌也应该避免。
我想到了 CodePen,用户经常在那里编写代码。我们做了几件事来提供帮助
- 转到其他页面的链接,这些链接明确地是“了解更多”风格的链接(例如 [?]),您只有在与编辑器交互时才能看到,这些链接在新选项卡中打开。
- 普通链接(例如页脚中的链接)具有正常行为,但我们检测到您是否在编辑器中进行了未保存的更改,并在您离开之前提示您保存它们。
- 如果您确实离开到另一个站点(或浏览器崩溃),我们将保存编辑器在 localStorage 中的状态,以便您不会丢失工作。
结账是另一个案例。当然,您不希望在客户结账过程中丢失客户。指向“送货信息”之类的链接应该可以打开,而不会让他们丢失结账过程中的位置。
在我看来,“阅读文章”不属于这种情况。由于(通常)很容易返回(大多数浏览器甚至会向下滚动到您所在的位置),因此没有丢失的风险,而且读者实际上只是快速浏览而已。
一个好的理由:某些技术上晦涩难懂的点
我正在构建一封电子邮件,需要在 Outlook Kangaroo 2009 企业版中打开,但链接需要使用target="blank"
,否则它们会在侧边栏查看面板中打开,并且……
好的。
技术
如果你必须……
强制用户确认他们是否要离开页面
window.onbeforeunload = function() {
return "Two buttons will be below this message asking if the user wants to stay on this page or leave.";
}
正确的HTML
如果你要这样做,不仅需要target
属性来实现功能,还需要rel
属性来保证安全性。
<a href="http://website.com" target="_blank" rel="noopener">Link Opens in New Tab</a>
戏剧性
我意识到我在这里表达了一些比较强烈的观点。这是一个每个人都有自己观点的话题。当然,欢迎大家分享你们的观点,但如果可以的话,让我们保持冷静,专注于情况、解决方案和数据。
1 <form>
也可以有target="_blank"
。我认为这是一个不太常见的用例,但本文中的相同思考方式也适用。
2 如果你选择另一个视频,你会直接跳到那个视频。但在那种情况下,我想知道这是否是UX选择还是广告选择。如果你正在观看视频的一半,点击另一个视频(可能是意外),然后立即点击后退按钮,你的观看位置就会丢失(好吧,YouTube现在处理得很好,但你可以看到这对视频网站来说通常是如何存在问题的)。也许对他们来说,视频之间切换的阻力越小越好,但如果他们能提供一些帮助就更好了。也许可以在时间轴下方添加一个小箭头,类似于“你之前已经看过这段视频到此为止”的链接。
既然这个问题肯定会提出来,不妨也在这里提一下。Target=”_blank” vs. target=”_new” http://www.russellheimlich.com/blog/target_blank-vs-target_new/
这太奇怪了!我想一些非常具体的拆分窗口交叉引用可能是一个用例?
有什么奇怪的?这是预期的行为。
你可以为目标使用任何名称(除了那几个保留的名称),它将在同一个窗口/选项卡中打开(除非强制在新窗口中打开)。
这可能更多的是遗留问题,而不是与当前开发相关。例如,我在旧的论坛软件中见过它,这些软件在单独的窗口中管理附件(因为每次用户从原始页面打开附件管理器时都触发一个新窗口不是一个好主意),现在人们可能在同一个页面上使用JS来完成这件事。
我正要问关于
target=new
的问题——但是,愚蠢的问题:下划线是怎么回事?我一直写target=new
,而不是target=_new
,并且一直用它来代替target=_blank
,因为(愚蠢的、自以为是的理由)“new”看起来更语义化哈哈。感谢你的帖子。感谢你提供的链接,其中讨论了target-blank和new的链接行为。很明显,对于用户来说,在同一个窗口中查看他们想要的链接页面,而不是每次点击都打开一个新窗口,这一点很重要。
你提到不希望用户离开你的网站是一个不好的理由。这假设了网站的目标是提供尽可能好的用户体验。让客户知道你的竞争对手本周正在进行促销活动,这将是一个很棒的用户体验。网站存在是有原因的,所有技术都应该支持这个最终目标。
@Michael:区别在于
target="new"
在名为“new”的选项卡/窗口中打开链接。如果不存在这样的选项卡/窗口,则会创建一个新的。但如果已经存在一个名为“new”的选项卡/窗口,则会重用它。另一方面,
target="_new"
每次都会打开一个新的选项卡/窗口。另请参阅我的另一条评论。拜托大家! 我们是网页开发者!!我真的很失望你们所有人。让我们现在就把这件事理清楚——希望下次也能如此:让我们从这里开始:MDN 参考
Russell的文章是错误的。 作为target属性的值,
_new
与stickybuns349
没有区别。真是像打电话一样传话。让我们从头开始:
_self:
[默认] – 将页面加载到与当前页面相同的“HTML5浏览上下文”(选项卡或窗口——浏览器/用户偏好,我猜)中。_blank:
– 将页面加载到一个新的、未命名的浏览上下文中。始终在新选项卡/窗口中打开。还有两个值与框架有关
_parent:
– 将页面加载到父浏览上下文中,如果不存在父上下文,则与_self
的行为相同。这意味着,它将新页面加载到父框架中。_top:
– 将页面加载到顶级浏览上下文中,这意味着在存在嵌套框架的情况下“整个页面”。如果你将
target
指定为这四个值之外的任何值,它将在一个新的选项卡/窗口中打开页面,其名称将是你的目标值。如果已经存在具有相同名称的选项卡/窗口,则页面将加载到那里。哈哈,非常及时。当我收到这封邮件时,我还在心里权衡是否应该删除或保留target=”_blank”。一如既往地感谢你 :)
你能否分享一下你的想法,是保留还是不保留。我尝试阅读了,但仍然不清楚在我的网站Santosh-shah.com上是否需要使用它。
一针见血。
正如我在Twitter上回复的那样,另一个不好的理由是,某些设备(例如Kindle)如果指定了target=”_blank”,则无法打开链接。例如,Kindle有一个单标签浏览器,它不会忽略该属性并在当前标签中打开链接,而是简单地抛出一个错误。
对我来说,这不能算作避免使用
target="_blank"
的充分理由,而更像是Kindle编程不佳的一个例子。考虑到target="_blank"
的普遍性,这似乎是他们方面的一个重大疏忽。为了迁就这一点而避免使用它,似乎更像是迎合了懒惰的开发者,而不是更好的用户体验。Robert说得很好。
我完全同意你的观点。
Chris,
文章写得很好。你确实提出了一些我之前没有考虑到的重要观点。但是,我仍然觉得这是一个古老的“规则”,总是被当作最佳实践提出,但实际上并没有像描述的那样给大多数访客带来很多问题。
只要
target=”_blank”
的使用适度,并且以不会中断网站正常使用的方式保持一致,我认为你就会没事的。总的来说,对于外部链接在新窗口中打开,我没有收到过太多投诉(我通常会先提示用户)。这正是我所认为的。我还没有让我的网站响应式,所以我的观点可能会改变。但我的感觉和Paul所说的非常相似,target=”_blank”有点像一个禁忌,它“实际上并没有给大多数访客带来很多问题”。
也就是说,这篇文章促使我开始对所有认识的人进行一次民意调查,以了解人们的真实想法。
我从事网页开发工作15年了,一直都在争论这些观点。但直到今天,我还没有遇到过一个客户没有将没有_blank的外部链接报告为“重大错误”,而且由于现在大多数浏览器默认都在选项卡中打开,所以它不再让我那么烦恼了……我放弃了:p
这两个(真正的)“充分理由”似乎都不支持使用 target=_blank。它们确实都支持在新标签页/窗口中打开链接的用例,但不是通过标记。分解一下:这两个“充分理由”的用例都依赖于用户发起某些操作(无论是媒体还是需要保存的内容),在这种情况下,盲目离开页面不是最佳选择。因此,在用户操作*之前*,链接应该正常打开。也就是说,页面首次加载时,所有链接都应该是正常的,并且只有在用户发起不应该因点击链接而中断的操作时,才应修改链接行为。那么,如何将所有链接转换为 target=_blank 呢?当用户点击播放时,是否会向页面中的每个链接添加 target=_blank?为什么?此时,添加 beforeunload 处理程序(如文章末尾所述)会更容易。或者,更好的方法是使用事件委托的点击处理程序,检查任何媒体(或潜在的可丢失状态),并相应地在新的/当前标签页中打开。
因此,总而言之,target=_blank 的唯一好的用例可以通过 JS 处理程序更好地实现;因此,永远不应该使用 target=_blank。
同意!!
一种非常好的解决问题的方法。我完全同意你的观点,永远不要使用 target=_blank
就我个人而言,我采取“内部”链接和“外部”链接不同的方法,不仅适用于我的个人网页项目和作品集,还适用于我每天维护的价值数百万英镑的电子商务网站。
不幸的是,在后一种情况下,董事们的意见和他们的愿望远远超过了前端开发人员的意见!
虽然我理解强制用户的浏览器以某种方式运行可能会被认为有点烦人,但我不会认为它是侵入性的或*错误的*。
作为开发者,我们为用户设定了理想和约定,这与认为我们的网站*特殊*或比其他网站更好无关——而是利用我们可用的工具为每个人创造体验,不幸的是,这是一个不断争取用户注意力的过程,让他们离开网站*不是*一个好主意——恕我直言。;-)
我几乎觉得使用 CMD(或 Windows 上的 CONTROL)在新标签页中打开链接对于大多数用户来说是如此常规,以至于是否在新标签页中打开链接的决定几乎总是应该留给用户。
很棒的文章,Chris!
自从大约 2000 年代初以来,我就没有使用过 target=”_blank”,仅仅是因为弹出窗口拦截器,而且它在 XHTML 中已被弃用。我找不到使用它的充分理由,而是选择以多种方式使用 Javascript。
方法一(onclick 事件)
某个网站
方法二(使用 jQuery 侦听事件,首选方法,尤其适用于外部链接)
<a href=”http://www.somewebsite.com” class=”externallink>某个网站
$(document).ready(function(){
$(‘.externallink’).on.(‘click’, function(event){
window.open(this.href);
return false;
});
});
这种逻辑似乎是反过来的。弹出窗口拦截器的主要目的是阻止 window.open()。它们通常会保留 target=_blank。
XHTML 就像一个死胎,每个人都声称使用它,但几乎没有人真正使用(我的意思是真正地将页面发送为
application/xhtml+xml
而不是text/html
,后者会被解析为 HTML(并且由于此原因而无效)。那么,为什么为像在新窗口中打开链接这样基本的事情使用 JS(更不用说 jQuery)呢?更不用说,正如 Jason 已经指出的那样,弹出窗口拦截器会拦截
window.open
? :)(好吧,现在它工作得更智能一些,当在
window.open
之前涉及onclick
事件时,浏览器通常会允许它)我从未见过阻止通过
target="_blank"
打开窗口的弹出窗口拦截器 :)我的经验是弹出窗口拦截器会阻止 target=”_blank”,因此我发现了 window.open(this.href) 并且从未回头。
至于 XHTML,我不知道还有谁没用过。不同的体验,我猜。
当然,现在 Doctype 变得更简单了,我仍然不会使用 target=”_blank”。我通常会在一个函数中使用 JQuery。
嗯……我的体验正好相反,很奇怪 :)
好吧,你没理解我的意思 :) 在 (X)HTML 代码中设置的 doctype 与浏览器如何解析代码无关(不要将其与页面渲染模式混淆:标准/怪异模式等等)——浏览器发送的 mime 类型才是最重要的。
IE9 之前的所有 IE 都无法解析此类页面,而是提示下载对话框,因此没有人真正使用真正的 XHTML,因为它在 IE 中根本无法正常工作 :)
https://caniuse.cn/#search=xhtml
哎呀……我的帖子乱了……
第一种方法是 onclick=”window.open(this.href);return false;”
另一个不好的地方
因为太多蠢货会第 666 次问我为什么它没有在新窗口中打开,以至于我真的很苦恼,要第 667 次解释为什么它是**该死的**蠢的!
(对不起,我不得不这么说 :) )
不同意外部链接如果没有视觉提示或标题属性暗示不同的行为就不在新浏览器窗口中打开。如果链接看起来相同,则它们的行为应该相同。
这是一篇有趣的文章。我被教导要在新窗口中打开外部链接(到不同的域名)。当我设身处地为用户着想时,我实际上更愿意在新标签页中打开新域名。当我在阅读一篇链接到不同域名的长篇文章(并且我希望继续阅读这篇文章)时,我发现使用简单的 control-W 击键关闭标签比尝试导航回我正在阅读的文章更容易。它只是更快,对我来说更有意义。你不需要重新加载原始页面,也不必担心丢失你的位置。感谢你详细介绍 target=”_blank” 的用法!
我实际上同意你的观点。老实说,我不认识任何一个人在阅读文章时点击链接,并且当它没有在新标签页中打开时不会感到沮丧。因此,会失去他们在阅读中的位置。我一直认为以这种方式做是合乎逻辑的。
重点不是你认为用户更喜欢在新标签页中打开外部域名。重点是,无需任何额外的标记即可在浏览器中打开新标签页(例如,在 Windows 中使用 ctrl+click),如果你在这种情况下应用 target=”_blank”,那么你就从用户那里剥夺了控制权。
如果用户 A 想要一个新标签页,而用户 B 不想要一个新标签页,那么应用 target blank 只能安抚用户 A,而不应用它则会让两个用户都有选择权,可以按自己的意愿操作。
就我个人而言,我喜欢外部链接在新标签页中打开,原因有两个。
如上所述,我可以继续无中断地阅读文章,并在准备好时转到新页面。
如果用户离开你的网站,阅读你链接的文章并关闭标签页,他们就不会回到你的网站。通过使用“_blank”,你可以确保如果用户对你的链接页面感到厌烦,至少你的页面仍然在他们的浏览器中打开。
@Mazurka 你也在假设用户知道他们可以(ctrl+click)。我保证 7/10 人不知道可以这样做。
没错。我们仍然对外部链接使用“target=_blank”,主要是因为这是我们网站访问者和内部主管要求的行为。我从经验中知道,至少我们的一些网站访问者不知道如何手动在新标签页中打开链接,而且我听说过一些人对在他们想查看我们网站上链接的另一个网站时被带出我们的网站感到沮丧。尤其是在我们有很多目录功能链接到其他网站,以及对联邦政府网站上托管的联邦指南和表单的引用时。
是的,我永远不会假设人们知道如何在新的窗口中打开链接。
@ryan 你在假设他们不知道。重点仍然是实现 target blank 会剥夺用户的控制权。我仍然同意 chris 的观点,这种方法有其用途,但通常被过度使用。
Kate,我完全同意你的观点。
Google 搜索和必应在同一窗口中打开链接,而雅虎搜索则在新标签页中打开它们。这必须代表一种哲学上的差异。雅虎似乎更积极地留住用户。他们的搜索页面有一条消息“请在 Yahoo.com 尝试完整的 Yahoo 体验”。它还会尝试自动将其设置为我的 iPad 上的默认浏览器。我发现这两个功能都很烦人。不过,对我来说很烦人的东西可能对他们有利。他们一定是这么想的。
修饰键 == 高级用户
这次谈话中缺少的是**可访问性**问题。例如:对于手部功能或视力受限的人来说,处理意外弹出的新窗口需要额外的努力来关闭并返回到原始窗口。打开一个新的浏览器窗口也可能让非常新手级的网页用户和视力障碍者感到困惑。
令我惊讶的是,在这个讨论中只提到了可访问性一次。
新窗口也可能让认知障碍者感到困惑。在页面上浏览,点击一个链接,尝试点击后退按钮 - 哦,等等,它不起作用。为什么?
WebAim 对新窗口的看法 - 如果你要使用它们,请让用户明确知道他们将要点击的链接将在新窗口中打开。
但是,浏览器/辅助功能工具是否有可能提供有关正在发生的事情的必要反馈呢?
@Adam Wills 关于警告用户的评论不应仅适用于视力障碍者(例如,屏幕阅读器的隐藏文本),而且其他用户的视觉提示(例如:target=_blank 链接的 :after 伪元素)可以为选择链接的效果做好准备。
回答你的第一个问题:XHTML 1.0 Strict(以及 1.1 和 2.0)DTD 已弃用
target
属性,因为 XHTML 页面的整体理念是它们是单视口应用程序,你永远不会打开新的视口(想想售货亭模式)。这就是为什么每个人都使用XHTML 1.0 Transitional 的原因,在那里你可以使用target
属性,以便他们可以规避这种所谓的限制。我说每个人,但只有那些认为非 JavaScript 用户(考虑到此实现发生的时间,可能存在视力障碍)在点击链接后必须打开另一个窗口的人。我只是在链接上查找了
rel="external"
,并在点击时通过脚本打开了新窗口,因此我一开始不必使用 Transitional DTD(来自HTML 4.01)…嗯……我仍然认为外部链接应该与内部链接区别对待。在我看来,这是一个可用性问题:不同的网站 = 不同的窗口/标签页。或者不是?
我将
target="_blank"
用于所有外部链接。并非每个用户都足够精通技术,知道如何在新的标签页中打开链接(相信我),并且在点击后退按钮以找到返回路径时会迷路。代表用户在新标签页中打开外部链接意味着他们不会迷路。这很有帮助。高级用户讨厌空白的
target="_blank"
。普通用户需要帮助,IMO。这只是一个新标签页。如果这对用户来说确实是一个问题,他们总是可以通过单击即可关闭打开网站的标签页。有趣的事实:Twitter 和 Facebook 都在其所有外部链接上使用
target="_blank"
。我认为这很有道理,因为共享到外部网站的链接是社交网络的一大功能。哦,我的天哪,Neave!我非常喜欢你的游戏:D 以及你的 magneticNorth 作品。
我不知道 Twitter 和 Facebook 会这样做。
我完全同意,target=”_blank” 需要有充分且具体的理由才能使用。这是我不得不进行过几次的斗争(尽管谢天谢地,我总是设法赢得了胜利)。除了尊重默认行为之外,还有一个问题是,作为用户,我可以轻松地选择使用鼠标中键在新标签页中打开,但我无法轻松地选择让 _blank 在同一窗口中打开(即使我事先知道我必须这样做)。
相关地,我开始注意到一些网站做相反的事情,并且不尊重鼠标中键打开新窗口(你好,Twitter,BBC 新闻上的外部链接)。
在电子邮件 HTML 设计中,一些专家提倡使用 target=”_blank”,因为 Gmail 用户可能通过浏览器访问他们的电子邮件,并且发现丢失他们的电子邮件页面很不方便。也许这是一个例外,但我认为我同意用户现在应该知道如何打开一个新的标签页或窗口。
其背后的原理非常引人注目,但我确实想指出,Gmail 会在电子邮件中的所有 URL 后面附加
target="_blank"
。所以,原理很好。围绕 Gmail 构建论点的专家,没那么好(或者至少过时了)。你真的观察过“普通”的网页用户吗?
我数不清有多少次有人关闭了窗口/标签页,以为它会将他/她带回上一页,仅仅是因为新页面在另一个网站上(视觉上不同)或是一个 PDF……
我同意应该使用默认行为(自身),因为始终可以选择在新标签页中打开链接,并且无法手动阻止 _blank。
但是观察新手用户确实让我明白,大多数情况下,使用 _blank 会为他们节省时间和挫败感……
那么,UX 是一个理想世界中最好的问题,还是我们真实用户的最佳问题?
没错,我的经验也是如此。
当你阅读一本书时,它有时会参考最后一页之一的索引。你用手指指着当前页面,并用剩下的手指搜索另一页。找到后,除了最初用来跟踪你正在阅读的页面的手指外,你松开所有手指。
这正是我对链接所做的事情。作为一名博主,我经常添加指向其他页面的链接,例如维基百科和 CodePen,以获取更多信息或演示。因此,当你阅读时,我指的是另一个来源。对我来说,当前的标签就像你的跟踪手指,所以我想在新标签页中打开这些额外信息。
也许用户会冲动地点击该其他网站上的链接,并在网络上迷失在模因和猫的悖论中。这通常发生在我身上,我讨厌找到返回我正在阅读内容的路径。也许我不应该将我的个人偏好反映在用户身上。
为我辩护的是,几个主要的社交媒体(恰好经常处理链接)也会在新标签页中打开链接。Facebook、Twitter、Google+,它们都这样做。我敢肯定,他们每个人都有受过良好教育的人在四处走动,认为像这样的选择非常重要,并且他们选择在新标签页中打开链接。
你提到的许多要点都不是在新标签页中打开链接的充分理由,这一点我承认。
你为什么有权决定?你怎么知道?也许我已经从你的文章中得到了我想要的东西,并且正在跟踪我在其他地方真正想要的东西。你的理由实际上只是上述几个糟糕理由之一。
@ChrisCoyier 我完全想同意你的观点,从理论上讲,这在实践中是有意义的。但是,@TimSeverien 提出了一点非常好的观点。Facebook、Twitter、Google+ 和其他主要的社交平台使用 _blank 链接作为默认行为。_blank 的普遍使用是否已经改变了“普通用户”的期望?这些用户在 Facebook 上花费大量时间,使用 _blank 打开他们点击的每个外部链接。
@Nate 我不认为 Tim 正在说他正在做出决定。我认为他是在说 Facebook 等公司已经做出了这个决定。如果这是真的,那么我们决定不将 _blank 用于外部链接将违背 Facebook、Twitter 和 Google+ 的做法,也违背“普通用户”的期望。
免责声明:我是一个标签狂,这些观点可能/可能不会受到我的上瘾的影响……
说到这个决策中的 UX,我想看看一些数据,了解用户点击一个明显要离开网站的链接时会有什么预期。并不是说设计师应该做一些“错误”的事情来取悦用户,但如果它违背了大多数用户的预期,就值得重新评估。就我个人而言,我觉得外部链接应该在新标签页中打开。我认为这很有道理,很多观点都提到了这一点。在阅读了帖子和评论后,目前的想法可能是只对较大的设备这样做。
我一直坚持使用
_blank
来区分内部和外部链接。我一直努力完整地写下我的推理,但这是我最好的尝试。我从小就在网络上使用,认为外部链接会在新标签页中打开。这是否应该成为最初的传统是另一个讨论话题,但就目前而言,我期望外部链接在新窗口中打开。我只能假设大多数其他网络用户也期望这种行为。
我们大多数人都知道某种形式的标签点击,无论是中间点击、Ctrl 点击、Cmd 点击还是其他什么。但无论何时我看到非技术娴熟的人使用浏览器时,他们要么不知道它存在,要么在合理的时间忘记使用它。
对于普通用户来说,浏览网页是第二天性。你知道什么时候想在新标签页中打开页面,也知道如何操作。如果某个页面意外地在新的标签页中打开,你会非常清楚地意识到这一点……后退按钮被禁用,所有标签略微移动,你从数千小时的网络使用中培养出的感觉让你知道那个锚点上肯定有
_blank
。那么你该怎么办?你只需关闭另一个标签页。*最小的努力*。现在对于那个非技术娴熟的用户,那个期望内部链接停留在同一页面而外部链接在新标签页中打开的用户。当你浏览完那个外部网站并想要返回之前所在的页面时,你觉得会发生什么?他们会关闭当前页面,期望在旧标签页中看到他们之前的页面打开。他们为什么关闭当前页面?如果有一件事他们认为自己了解网络,那就是外部链接会在新标签页中打开。他们知道这一点,因为他们在试图弄清楚如何在页面在新标签页中打开后返回之前页面时,多次被弄得不知所措。他们在学习浏览器的标签系统的同时也了解了这一点。
我多次亲眼看到这种情况发生。
当那个非技术娴熟的用户关闭那个窗口时,他们会丢失整个会话**。现在,该用户必须在历史记录中搜索,试图记住他们之前在哪里。最终,这会比熟练用户关闭上一个标签页带来更多不便。
我可能说得太久了,如果你坚持到最后,恭喜你。我很想听听你的回复。
*假设
_blank
仅用于外部链接,那么在一个网站上你不太可能经常遇到这个问题。***是的,我知道有Cmd + Shift + T,但你认为不知道标签点击的人也知道这个吗?**
没错。我认为这是一个“了解你的受众”的决策,就像支持旧版浏览器一样。例如,有些网站可以放弃对 IE8 的支持。但我不能。我雇主网站的 8.25% 的访问者使用 IE8。12% 使用 Windows XP。他们中的许多人并非我所认为的技术娴熟用户。许多人是退休人员。他们登录我们的网站,然后经常参考州或联邦政府的网站和表单。根据我的经验,从用户反馈和用户研究来看,他们希望这些外部链接在新标签页中打开。所以我们就是这样做的。如果他们不想要,我们会取消这种行为。
这正是我对这个主题的感受。我是一个经验丰富的网络用户,我知道很多花哨的键盘快捷键,但即使是我自己也发现自己会关闭标签页,并想知道我之前在看什么鬼东西去了哪里。为什么?因为我点击了一个指向全屏图像、猫咪视频或其他网站的链接。这些链接在新标签页中打开很有道理。
现在,我们可以争论到脸都变色,关于情况应该是什么,但看看你的用户期望什么,并围绕这个构建你的 UX。我怀疑你会发现网络上的大部分用户都会期望内部和外部链接的区别。
鉴于
target="_blank"
的普遍性;我认为“我的客户想要这样”根本不是一个糟糕的论点。正如许多人已经指出的那样,这种机制可以说是行业标准。客户会在其他网站上看到链接以这种方式运行,然后就会问为什么他们自己的链接不是这样。我可以给出世界上最雄辩的技术答案;但归根结底,这相当于争论其他人做错了。脱离预期可能是有益的,但我认为这将是一个难以赢得的论点,坦率地说,在大多数情况下不值得麻烦。
现在,如果更多网站都采用这种思维方式,情况就另当别论了。如果没有令人信服的证据表明用户发现链接在新标签页中打开是像你上面所说的那样:令人讨厌的、违反信任的等等,那就不会发生这种情况。我假设这篇文章更多的是基于意见而非民意调查,但如果我错了,我很乐意阅读更多关于民意调查的信息;用户喜欢/讨厌什么总是很有趣的。
我不同意,为外部链接或任何没有你网站导航的页面打开新窗口不仅是大多数用户首选的,而且是预期的。
最近,我注意到越来越多的网站遵循 W3C 的建议,不使用 _blank,我觉得这很烦人。
不是要无礼,Chris,但我认为你的大部分客户都是技术娴熟的,因此,你的意见/经验可能会有点偏向于知道自己在做什么的用户。根据我的经验,普通用户不知道如何做任何额外或特殊的事情。用户几乎不会经常使用后退按钮,他们更喜欢在用户体验中获得帮助。他们不想做或知道任何他们不必做或知道的事情。他们喜欢在流程中得到指导。所以,如果在新窗口中打开链接对你的底线更有利,因为用户倾向于更喜欢它或更有可能继续留在你的网站上,为什么你不这样做呢?
此外,浏览器窗口的历史记录是线性的,但在大多数情况下,当打开外部链接时,你是在走一条旁路。用户经常会沉迷于新内容,忘记或从未返回他们来自的地方,除非你保持原始内容打开。大多数外部链接作为进一步信息的额外来源提供,与你当前正在阅读的内容不一致。如果链接确实与内容直接相关,那么你将以链接或内容结尾,而不是在其他地方。
在一个窗口中打开外部链接就像阅读一本书的第一章,遇到一个引用第二章的句子,然后跳到第二章而没有读完第一章。外部链接旨在提供补充信息,而不是使你当前正在阅读的信息失效或取代它。
我同意,在不支持标签的浏览器/设备上,新窗口更令人讨厌。但是,这就是浏览器最初创建标签的原因,以便让用户更好地直观了解哪些窗口/标签是打开和正在运行的,以及更容易返回原始窗口/标签的方法。期望用户知道他们看不见的浏览器历史记录,并记住他们来自哪里,这太傻了。
你是否一直都在单个标签页中浏览,不,没有人这样做,用户会为他们的旁枝侧节的想法/内容打开标签页。我理解你知道如何准确地按照你想要的方式导航,但大多数用户不知道,帮助他们并为他们提供更好的用户体验在我看来并没有错。
有一条评论说,浏览器不允许用户轻松撤消或强制单击单个窗口。也许应该向浏览器而不是开发人员提出这个问题,就像你提议浏览器/用户而不是开发人员应该定义新窗口一样。
至少在 Chrome 中,Ctrl + 点击打开新标签页,Shift + 点击打开新窗口,Alt + 点击保存链接内容,也许他们应该添加 Ctrl + Shift + 点击以在同一窗口中打开链接来覆盖默认行为。让开发人员能够为普通用户编程,同时仍然允许特殊情况按照他们自己的意愿行事。
我同意,重新思考默认值将是我的主要观点:默认行为出现在带标签浏览出现之前的时代,如果没有标签,那么人们对哪种方式更方便的看法可能会有很大不同。我很想知道“普通”用户是技术娴熟还是非技术娴熟的用户(即,知道 Ctrl 点击或不知道的用户),但我敢打赌,无论如何,非技术娴熟用户的比例都很高。预期行为是一个重要的 UX 因素,不能为了浏览器不同的初始默认行为的意图而忽略它,当时任何定期使用互联网的人都具有高于平均水平的技术亲和力。
也就是说,所有关于强制用户行为的观点都是完全有效的,只是试图用意识形态对抗现实毫无意义。解决这个问题的最佳方法可能是将默认值更改为 _blank,并允许过滤以对内部链接使用 _self(开发人员端)、非标签浏览器或用户的辅助功能设置(客户端)。这样,通过迎合预期行为,选择元素就不会丢失,并且 _self 的所有重要用例都可以得到解决。
今天的默认行为就是明天的历史。昨天的已弃用属性今天仍然存在——不是吗?
感谢提到了 target=”_new” 的发帖人,因为这对我来说有效,并且似乎是更好的选择。不太可能有人希望同时保留两个来自他们正在阅读的页面的引用,我相信浏览器标签泛滥对我们大多数人来说都是一种麻烦。
我想阅读更多关于辅助功能和这些实践的信息。例如,屏幕阅读器如何响应新浏览器标签的打开?
另一个很好的理由:你正在尝试使你的网站/Web 应用程序在 Firefox OS 中以“无 Chrome”窗口运行时能够正常运行。
我们在尝试将liftie.info提交到 Firefox 应用商店时遇到了这个问题。
他们(Mozilla)希望外部链接(即带你离开网页域名的链接)在新窗口中打开,因为否则就没有后退按钮(软件或硬件)可以让你回到你的应用程序。他们甚至建议使用:https://github.com/digitarald/chromeless-external-links-snippet
另一方面,亚马逊商店的政策截然不同:他们需要确信每个_blank链接确实是外部链接;-)
如果你希望你的网站“像应用程序一样工作”,那么_blank是一个避免破坏这种错觉的实用现实。
想象一下,如果点击Outlook中的链接打开了IE并关闭了Outlook。
即使从理论上讲,后退按钮是返回的导航路径,但如果你陷入一个兔子洞,最终进入一个积极重定向的网站,或者找到一个劫持历史记录的网站,或者意外关闭窗口或标签页,那么你就完蛋了。
另一种看待这个问题的方式是,从这些链接的可信度方面来看。
在一端,网站创建者放置的链接与网站本身一样可靠。_new绝对是正确的选择。
在另一端,YouTube评论中的链接非常可疑。_blank是一个更好的选择。
其他用户生成的内容将位于此范围内的某个位置。你母亲登陆俄罗斯色情网站的概率指数应该指导你的选择。
没错,除了_blank一半时间的使用甚至比完全不使用更糟糕。现在用户无法知道你的网站上哪些链接会在_blank中打开,哪些不会。
因此,最好在新的窗口中打开所有外部链接,以确保网站和所有网站的一致性。
既然所有大型网站都这样做,你真的想仅仅因为开发者社区(也许是,肯定不是用户社区)更喜欢它而与他们对抗吗?
正如其他人提到的,如果所有大型网站都这样做,一定有充分的理由,无论是因为用户更喜欢它,还是因为它安全性更高,或者仅仅是因为所有主要网站都这样做,所以他们也纷纷效仿。
不随大流的时机是,不随大流会在短期或长期内产生更好的结果。我认为不使用_blank永远不会对你的底线、流量、用户互动等产生更好的结果。
这是一个很好的社区问题。在相同域名但服务于不同目的(例如支持)的页面上使用target=”_blank”,对于此类页面,是否应该使用target=”_blank”呢?
在我看来,这不是一个好主意。在配置我的浏览器忽略target属性之前,点击支持页面通常会留下10个打开的标签页。
这是一个在现实世界中使用的示例,使用
blank
值供大家讨论http://developer.vimeo.com/player/js-api#universal-with-froogaloop
点击“Github页面”链接。
值得一提的是,使用屏幕放大软件的人以及某些认知障碍的人会发现在新浏览器窗口中打开的页面令人困惑。在这两种情况下,用户可能都没有意识到新页面/标签页已打开,这可能会产生一些意想不到的后果。例如,后退按钮看起来坏了。
你关于谨慎使用_blank的建议很有道理,从用户体验的角度来看,使用通知或警告来提示新页面即将打开是一个好方法。
我认为通知可能会更令人困惑?我设想的情景是这样的
用户(此处未考虑困难、特殊需求)看到一个他或她想访问的链接。按下链接。用户的预期是链接将被加载。但这并没有发生。相反,用户会看到一个对话框,说明此链接将在新标签页中打开。然后需要某种操作来移除警报并开始将用户转发到他或她最初的预期。
分解一下,我们还有几个额外的麻烦。
1.) 这是针对所有在新标签页中打开的链接完成的。每次用户点击这些链接中的一个,他们都会收到相同的警报框。
2.) 对话框有一个选项可以隐藏将来出现的通知。现在我们不仅要求用户中断一次他们的预期,还要以完全不同的方式与对话框进行交互,以便他们可以表明他们认为该框是多么不必要。
3.) 无论1或2如何,对话框代替预期事件的存在可能会让用户感到困惑。他们可能会认为出了问题,因为他们点击了一个链接,但链接没有按他们预期的那样工作。
……我并不是想劝阻或否定某些有特殊需求的人可能会发现这些工具很有用;而是为了说明如果无论用户的具体需求如何都实施了,这可能会多么麻烦。
我不确定Chris,我理解你的观点,但我还没有被说服 :)
顺便说一句,我还没有看到这里有人提到右键点击然后点击“在新标签页中打开链接”的方法,这是我多年来一直使用的方法,直到我观察到其他人使用它,才知道中间点击的方法。就像双击一个单词以快速突出显示整个单词,而不是从头到尾突出显示它:那些在你真正使用几次之前感觉有点奇怪的快捷方式之一,然后你发现它很棒。重点是:用户是否知道他们可以根据需要在新标签页或窗口中打开?几年来密切观察用户在培训课程中的行为表明我
1) 许多用户从不右键点击(因此永远不会看到他们浏览器中的上下文菜单)
2) 大多数用户不知道中间点击或Ctrl-点击或[Meta键]-点击链接
3) 许多用户非常习惯点击浏览器中的“后退”按钮,但也非常习惯于关闭窗口或标签页,并且当他们在不合适的时间意外关闭窗口或标签页时(未使用target=”_blank”时)会感到非常困惑
归根结底,target=”_blank”的使用非常广泛,所以我没有计划更改 :) 同时,如果有人希望以Chris提到的原因采用其他方式,我也不会大喊大叫。
我相信唯一应该始终避免的事情是Russell提到的:使用target=”_new”或target=”whateverYouLike”,因为它曾经并且仍然倾向于导致非常糟糕的可用性问题(“为什么我的窗口没有打开” / “为什么我点击链接时没有任何反应??”……“哦,它已正确打开,但在另一个我已打开的后台窗口中,它位于此窗口后面,所以我看不到它”)。
target="_blank"
的另一个合理用途是在网页查看器某种程度上期望内容在新标签页中打开时。例如,对于在线商店的“继续结账”按钮,许多买家仍然期望被转移到另一个标签页。“迷你心脏病发作”(尤其是老年人)当他们认为自己丢失了所有正在做的事情时,天哪.. :)你忘记了
target
属性存在的主要原因之一。还记得frames
,或者现在的iframes
。你可以通过其id
将页面上的链接定向到刷新目标框架中的内容。在我看来,将_blank
用于外部链接是可以的。正如Chris所说……阅读不能算工作吗?我理解后退按钮会将他们带回他们离开该页面之前所在的页面和滚动位置,但大多数人注意力都很短,很容易迷失在点击每个感兴趣的链接的兔子洞中。在那时,祝你好运使用后退按钮。
还有一种叫做门道效应或事件边界。就像你穿过一扇门并忘记为什么进入那个房间一样。用户很容易忘记他们最初是在阅读文章,并且永远找不到返回的路。
广告呢?你什么时候不想让广告在新窗口/标签页中打开?我还可以理解将指向外部网站的链接有时可以归类为自我服务的广告。
我有一个我喜欢使用的基本经验法则……在更改上下文时,使用新窗口。这解决了兔子洞和门道效应这两种情况。
高级用户和程序员似乎是对此问题最有发言权的人。大多数人可能对此几乎没什么可说的。尤其是在我们有了标签之后。
我们遇到这个问题的原因之一是,没有最佳实践。如果谷歌、Facebook和Twitter都这样做,我们怎么能宣扬它不应该被做呢?只要“三巨头”这样做,它就不会改变。顺便说一下,他们这样做的原因与最佳实践无关。他们的理由和最糟糕的客户一样糟糕,他们想要你的眼球。如果由他们决定,我们永远不会离开他们的平台,所有浏览都将通过他们的社交网络进行。
同意
很棒的观点,Josh。完全同意你的看法。尤其是在这里
如果我告诉你大多数最终用户都不知道他们可以用右键点击或中间点击打开新窗口,你会怎么说?
好吧,恕我直言,如果我正在阅读一篇文章,它有一个关于某个主题的进一步阅读链接,它应该在新窗口中打开。我访问的大多数博客和网站都没有这样做,我发现用浏览器返回真的很痛苦,尤其是在没有推送历史记录的基于Ajax的网站上……
我对此也不确定。
我始终在外部链接上使用 target-blank 有三个原因,或者说,我讨厌网站在同一标签页中打开所有内容。
1) 大多数用户都很笨(这里指的是浏览非技术类网站的非技术人员),他们通常甚至不知道可以在新标签页中打开链接,因此我们必须引导他们;否则,他们可能永远无法从外部文章返回到我们的页面。
2) 我个人讨厌使用后退按钮,然后等待页面重新加载并找到我之前的位置。在新的标签页中打开所有内容,然后简单地关闭它,并将原始页面恢复到之前的状态,这要容易得多。
3) 如今,我们在网页上看到了过多的 JS,还有很多第三方 JS – 我不想浪费时间在历史记录中来回切换,并每次都等待页面加载并正确构建所有内容。侧边说明(参考文章、PDF 等)应该有自己的位置,并且不应*替换*原始网页。
实际上,我发现一些不使用 target=”_blank” 的网站非常令人恼火,特别是如果它们有非常重的页面和大量的评论(特别是如果评论是通过 ajax 加载的)。如果我不小心点击了链接,而不是按住 Ctrl 并点击,那么我必须等待整个页面重新渲染,并且会失去我在评论中的位置。以前在 Smashing Magazine 上这让我抓狂。想象一下,如果 Twitter 上的链接没有在新标签页中打开,并且你完全失去了位置,那会多么令人恼火。
在适当的情况下,在新标签页中打开实际上是一种非常友好的用户行为。它不应该在所有地方都这样做,但认为它总是或几乎总是糟糕的行为的想法是错误的。
我目前正在开发一个单页投资组合网站,我决定将网站列表的链接放在
target="_blank"
中。我的想法是,由于每个网站本身都是一个完整的网站,因此将用户发送到那里并让他们四处点击会让他们忘记他们是从哪里来的。我认为您会同意这可能是那些**好的**理由之一(如果我错了,请纠正我,我愿意听取建设性的批评)…不幸的是,据我所知,没有浏览器选择支持 CSS3 超链接表示模块、W3C 工作草案 2004 年 2 月 24 日中关于“target-new”属性的指南:http://goo.gl/UbQn1a。(是的,十年前。)如果已实现支持,则将存在 CSS 解决方案:
* { target-new: tab ! important }
或a { target-new: tab ! important }
。访问者是否具备知识和信心来右键单击链接以启用选择在新标签页或窗口中打开链接,或者作为开发者,我们是否有责任通过编码来实施行为意图以强制执行用户体验,这可能是一个更大的问题。
如果访问者在用户启动的活动(正在播放的媒体、部分完成的表单等)中点击链接,我确实认为保留该活动很有价值。但是,如果我们要实施编码解决方案,我建议使用
target="tab"
而不是target="_blank"
。target="tab"
在 Validator.nu Living Validator:http://validator.nu 和 W3C 的标记验证服务:http://validator.w3.org 上的 HTML5 中都有效。当我观察老年客户使用互联网浏览器时,通常会出现标签炎的情况(我认为是 div 炎的远亲)。他们可能打开了来自同一网站的 10 个标签页,因为他们不理解选项卡式浏览器导航的概念。当链接被强制在新标签页中打开时,他们告诉我他们感觉自己被剥夺了“后退”的能力。
对于某些人群来说,_blank 目标可能是一种糟糕的用户体验。
我想这一切都归结于偏好。很久以前我读到过的一句话(不太确定来源),让它保持默认。如果用户不想离开你的网站,他们会自己在新标签页中打开链接。不要强加于他们。
当用户处于转化漏斗中并且我们有某些内容的链接时,我们会使用 _blank,这样如果他们点击外部链接,我们就不会丢失用户。例如,如果您有一个评论网站,您可能希望用户能够点击在新窗口中打开的产品链接,以便在他们关闭产品链接时将他们保留在您的网站上。
我认为这对于文章、参考文献和社交媒体来说是好的。
例如 - 您正在阅读一篇文章,它引用了另一篇文章,我认为链接的文章应该在新标签页中打开,这样我就可以阅读它,然后在不丢失原始文章位置的情况下关闭它。
通常情况下,我只需按住 Ctrl 并单击即可确保它在新标签页中打开。
哪里有“超级喜欢”按钮!
这应该由用户管理,网站设计者不应该对此发表意见。出于任何原因将我放在同一页面或其他页面的网站会让我按照他们的方式浏览,我一点也不在乎**他们**的方式。我更喜欢在新标签页中打开外部网站,对我来说,子域是网站的更改,它应该作为浏览器中的标准配置点进行管理……
那胡子!
很棒的文章,Chris
为什么“充分理由”会有所不同。正如作者指出的那样,可以通过询问用户是否确定要离开(并告诉他们后果,例如丢失工作、媒体停止等)来(更好地)处理它们。仍然没有必要在新窗口/选项卡中打开链接——对我来说没有任何意义。除此之外,我完全同意,即使与客户争论这一点也很困难。
我认为
target="_blank
在您需要阅读一个页面(可能是一个长页面)并带有更多信息的链接时很有用,但您不想退出您仍在阅读的页面,因为如果您点击链接并更改页面,您将中断您的阅读流程。我认为这在教程或类似情况下的演示页面中很有用。
我总是发现自己内心在进行辩论,并且可能最终不会始终如一地做出任何一种选择。
再次感谢您在这个混乱的世界中带来的清晰度;-)
我的网站,我的决定——你的网站,你的决定。
我喜欢 target=_blank 属性。
我的网站有很多外部链接,我的网站是将它们联系在一起的纽带。其他人可能会有不同的看法,但由于这些是我的网站,所以这是我的决定。
我引用的每个网站又会引用大量其他来源,依此类推。
很容易迷路。有时无法返回。
由于我无法控制这些被引用网站的行为以及它们如何引导访问者,因此我认为我必须行使我拥有的所有控制权来继续引导访问者至关重要。
用户可能希望考虑更深入地研究一个线程,将许多网站串联起来。那么,让他按无数次后退按钮被认为是一个好的 UI 决策吗?你不可能是这个意思!
可能偏离一步是可以的,但如果他们偏离了 5 步、10 步、20 步呢?
很可能他们不记得自己是从哪里来的,但这对我来说很重要。访问者很容易分心。
由于我无法知道用户是否会偏离 1 步或更多步,所以我别无选择,只能使用 target=_blank 属性。
我再说一遍:我喜欢 target=_blank 属性。
所以用户没有发言权吗?
你真有趣。当然,用户有发言权。
如果访问者不喜欢我的网站,他们无论如何都会离开。但这将是他们自己做出的明智决定,而不是因为分心而意外离开。
更不用说,不要促进无意的离开。
我目前使用
target="_blank"
的唯一场景是在业务应用程序中,其中菜单项链接到公司网站和社交网络。决定将它们发送到一个新窗口是为了不中断用户的会话,并且他们不会看到由
window.onbeforeunload
触发的消息。我完全不同意这种观点。
1) 外部链接应该在新标签页中打开,因为它们会跳转到不同的“应用程序”或不同的“服务”。在当前标签页中打开会破坏工作会话。无论媒体是否正在播放或是否正在编辑内容,都无关紧要。
2) 无限滚动是一个糟糕的东西,除了极少数情况。真正的问题不是新标签页,而是无限滚动。
3) 根据媒体状态(播放或不播放)更改链接行为也是一个糟糕的主意。用户不会知道为什么网站一直在改变。
我喜欢在不使用target属性的情况下编写代码,但在代理机构中,大多数客户期望外部页面在新标签页中打开。一些不熟悉电脑和网页的人不会在新标签页中整理他们的标签和文章以收集未来信息,然后抱怨“啊,我如何回到之前的页面”。这个话题很难处理。
基本上,我在内部链接我的页面时保持正常,但当链接任何外部资源时,我使用target="blank",我这么做的意图非常明确,即读者不应该离开我的页面。
两点
作为用户,当外部链接没有自动在新标签页中打开时,我真的很恼火。然后我必须点击后退按钮并找到我之前的位置。此外,在阅读博客时,我经常在阅读时打开我想查看的链接,然后在阅读完文章后转到这些标签页。
至于 PDF 文件,我对此持 50/50 的态度。在移动设备和旧版浏览器中,我遇到过很多实例,其中使用后退按钮不再是选项。就我个人而言,我不认为在新标签页中打开它们有什么不好的。
但这些只是我的观点,你知道关于观点人们常说的话。
精彩的文章,谢谢!我完全同意你所有的论点。
也就是说,既然你提到了……此网站上的搜索结果链接在新窗口/标签页中打开——这始终让我感到困扰。你为什么这样做?
Chris,
你应该为那些遵循你意识形态推理的人建立一个教会。
对我自己来说,我会忽略你的“糟糕的理由”,因为我宁愿关闭一个标签页也不愿点击后退按钮。
顺便说一句,过度依赖 JavaScript 进行导航的网站正在失去眼球。
-Gary
附言:我确实喜欢你的博客,非常好。谢谢。
过去也曾建议将链接保留为默认的蓝色,因为默认颜色显然是用户所期望的。(Jakob Nielsen 坚决主张这一点。)但我想你很难找到过去十年中构建的带有默认蓝色链接的网站。
我承认,多年来我一直尽力说服客户在使用 target 属性时遵循默认行为。但是我近 14 年的代理机构经验告诉我,客户和用户(至少是我接触到的那些)只是期望所谓的外部站点链接在新窗口中打开,无论我是否喜欢,并且任何合理的理由都无法说服他们。
Chris,你完全正确。Jakob Nielsen(你们都知道他是谁)从他的第一本书《网页可用性》发布以来就一直在说同样的事情。一本圣经。
说得很好!
我只是不想忽视其他人对这个页面留下的影响。也许我们可以使用一个简单的 jQuery 将 target="_blank" 添加到我们页面上的所有外部链接,并为特定链接添加 (+1) 和 (-1) 值。它还可以向外部链接添加 rel="nofollow" 属性。
这是我的博文,详细介绍了代码片段如何工作?
使用 JavaScript 自动为外部链接添加 target _blank 属性
我们仍然经常出于你提到的许多“糟糕”的原因使用 _blank。
请考虑,很多(太多了)人不知道“后退”按钮!说真的!有多少人仍然认为 Google 搜索栏(在刚启动的浏览器中间非常突出)是输入网址的地方(“地址栏?——你在说什么?”)
所有不了解网页设计的人对大量不同的导航理念、布局、技巧、在我们的 Chrome 和 Safari 上看起来很棒但在 IE(最新版本)中根本不起作用的东西越来越困惑。
我的邻居经常来问我关于冲浪的事情,我了解到他们中的很多人,因为我不得不承认“是的,……我理解你的困惑——一致性和清晰度缺失”。
我对此反复权衡,最终决定对外部链接保留 target="_blank"。我的客户和很多互联网用户都习惯了它。包括我自己。Basecamp 过去曾让图片在同一窗口中打开。我的客户甚至我自己都会关闭窗口,以为它是新的,然后被踢出 Basecamp。Basecamp 后来改变了这一点,可能是因为收到了很多投诉。当我访问像 siteinspire.com 或 http://mediaqueri.es/ 这样的展示网站时,我期望当我点击查看网站时,它会在新窗口中打开。Siteinspire 会这样做,mediaqueri.es 不会。当我忘记后者是如何运作时,这让人感到沮丧。
总之,我觉得所有站点页面都应该指向自身,但如果链接到外部页面,则应该在新窗口中打开。原因是它已经这样做了很长时间,以至于很多非技术人员的互联网用户都习惯了它。而且我确实认为它不会对任何人造成任何伤害。
但是,每个人都有自己的想法……
对于一般目的,我必须同意你的观点,但我认为确实存在非常罕见的例外情况。
我之前在一个 Web 应用程序上工作,该应用程序允许您在线阅读教科书并在上面做笔记。在这些教科书中,有指向书籍其他部分的链接以及指向外部网页的链接。
由于根本无法修改这些书籍的外观(出版商),内部和外部链接看起来完全相同,这导致用户意外离开应用程序的问题。这非常令人沮丧。
我们的解决方案是让所有外部链接使用
target="_blank"
,而内部链接使用默认行为,这受到了好评。我认为做出此类决定的要求非常狭窄。它应该作为最终解决方案出现,而不是立即或甚至次要解决方案。通常,此类功能完全是为了业务目标而出现的,但当它源于负面的用户体验时,我认为它是有效的。
Chris,非常感谢你写这篇文章。能够如此清晰地列出用例真是太好了。
我曾在使用在新窗口或新标签页中打开链接的网站上进行可用性测试,参与者完全被阻塞,因为他们没有注意到打开了新的窗口/标签页。在意识到他们进入了错误的页面后,他们直接点击后退按钮——但没有任何反应。我不得不介入并解除参与者的阻塞以继续测试。这种情况发生在有视力障碍和使用屏幕阅读器的用户身上。
对我来说,重要的是用户无法不打开一个新窗口/标签页,如果它被设置为以编程方式执行此操作。但用户可以选择自己打开一个新窗口/标签页。我曾经进行过可用性测试,参与者在新窗口中打开了页面上的每个链接。这对他来说是有效的,但这是他的选择,而不是设计者的选择。
你做了多少测试?我想知道是否有人有任何(经验或轶事)证据支持任何一方观点。我自己没有参加过很多 UX 测试,但我认为它们对于试图找出开发人员往往会忽略的“普通用户”的怪癖非常有用。
Tom,这些是来自专注于其他任务的可用性测试环节的观察结果(因此,是轶事)。我同意——没有什么比观察更能了解人们如何工作了!
我们在办公室里讨论过这个问题——我当时的想法是文章中提到的“指标指标指标”。我部分地被不从用户那里夺走控制权的想法所吸引,但与此同时,我无法摆脱大多数用户可能根本不知道他们有这个选项的刻板印象。
我不太明白为什么我的偏好(作为用户!)是无效的。没有什么比别人告诉我我想要错误的东西更让我恼火了。
实际上,强制外部链接在新窗口中打开并非易事(这不是浏览器设置),在新窗口中打开链接也不是很容易,尤其是在笔记本电脑上,我无法使用鼠标中键,所以我需要要么使用双手,要么点击两次。
这对用户来说是不方便的,我不明白为什么这无效。这对客户也适用。如果客户想要它,尤其是在用户测试表明它有用时,这是一个完全合理的理由。
在无限页面或只是较长的页面上丢失上下文(滚动位置)实际上并不重要,对我来说似乎是一个非常好的理由。
而且我认为媒体播放并不是比滚动位置更好的理由——如果你在播放媒体时这样做,但在不播放时却没有这样做,我敢说这会造成非常令人困惑的用户体验。
需要进行一些用户测试,以及一个不错的 jQuery 插件,以便将其设为站点范围的设置。
有趣的是,上周我们办公室刚刚讨论过这个问题。我一直被教导内部/外部的思考方式;很高兴读到一种相反的观点(而且它很有道理)。我认为“充分理由”部分很扎实,我们会从现在开始实施。
我不得不不同意这里列出的大多数不良理由。外部链接应该在新窗口中打开。PDF,新窗口。我不想让用户离开我客户的网站。从商业角度来看——你不会希望你的客户失去潜在客户,对吧?你也不可以假设所有用户都知道 Ctrl+单击。后退按钮?算了吧。
那是你的观点。而且它不应该很重要。
应该重要的是用户的观点。对他们来说,它只是一个网络,而不是你客户的网站或其他人的网站。
没错,Chris。
“打开新的浏览器窗口就像一个吸尘器销售员,在拜访开始时将烟灰缸倒在客户的地毯上。谢谢,不要再污染我的屏幕了。”——Jakob Nielsen。
如果你想在另一个标签/窗口中打开链接,它不必是新的标签/窗口。
target="myTabName"
可以做到这一点,以避免每次都打开新的标签/窗口,而是重用该标签/窗口。不。target 不是 HTML 与 XHTML 的问题,而是过渡与严格的问题。
target 在 HTML 4.01 过渡版和 XHTML 1.0 过渡版中均有效,在 HTML 4.01 严格版和 XHTML 1.0 严格版中均无效。
@Gunnar。就是这样。
很高兴有人引用了尼尔森的话。他最近因为对移动设备的看法而声誉受损,但不要因此而被愚弄——他的大部分内容都非常准确,尤其是这个。
我理解前提,同意你的大部分观点,并且完全尊重拥有自己的观点。但是,难道没有人对此有任何实际的数据吗?这似乎总是另一种观点,而我也一样。
我们应该有一种方法来验证“用户”在某些情况下不喜欢在新窗口中打开内容的假设。
是的,我们需要关于此的实际数据。
我觉得我们需要双向数据:有些人说用户对新标签/窗口感到困惑,因此我们不应该使用它们;另一些人说用户对后退按钮感到困惑,或者在链接没有在新标签/窗口中打开时(而他们期望它这样做)感到困惑。
这两种情况中,哪一种比另一种给用户造成更多困惑?它们是否都同样造成困惑?
我们需要完全标准化我们在网络上使用新标签/窗口的方式吗?鉴于上面提出的意见分歧,标准化是否可行(或者开发人员是否会继续以他们个人认为正确的方式进行操作)?
五年后,这场讨论/争论还会持续吗?
我不明白如果有人说“我使用 target='_blank' 因为他会失去客户”。
每个在线用户都知道如何在新的窗口中打开链接。而且每次在我的 Android 浏览器中打开一个新标签时都很困难,因为你只能有 15 个新屏幕。
我并不是将此作为“好的”示例,但它曾经拥有或现在拥有数百万用户。Facebook 在所有外部链接上都使用 target="_blank"。这是一件好事,因为人们(包括我自己)往往会在阅读之前打开 5-6 个链接,同时浏览“新闻”。
此外,人们永远无法确定用户导航到的页面是否包含一些非常糟糕的 JavaScript 代码,这些代码会干扰后退按钮,或者用户在阅读完“他点击的内容”后是否会关闭该标签。当然有历史记录,但我们真的能承受所有这些混乱吗?
整个对话都很愚蠢。
你们这些主张人们不要使用它的人,说话就像它应该是在联合国提出的议题一样。
不同的人有不同的需求。如果有人想使用它——谁在乎呢?
我真的不明白为什么有些人要如此执着地让人们知道他们多么讨厌我们使用 target="_blank",如果它有效并且可以工作的话。
用户体验对于每个人来说都是独一无二的。我既不赞成也不反对使用它。我不会浪费时间去争论它。
哎呀!我的生命中有五分钟再也回不来了。
我认为你们都需要出去走走,建一座桥,然后“忘掉它!”。
似乎很多人都是网站设计的新手。
在新窗口/标签页中打开链接至少从 99 年开始就是可用性问题。(请参阅尼尔森的网页设计十大错误以供参考。)我认为拥有浏览器标签并没有改变任何东西。我经常在测试网站时看到人们没有意识到打开了新的窗口/标签页,他们没有意识到并且尝试使用后退按钮。
如果说有什么不同的话,iOS 使它变得更加繁琐,因为你需要点击两个不同的位置才能回到你之前的位置。不要因为你认为你的用户都和你一样而炸毁最常用的导航项目——他们不是。
想要在新标签页中打开内容?让你的用户请求它。
在讨论是否使用新窗口时,我通常会使用这个论点
互联网用户有两种类型——那些对浏览器一无所知或不在乎的人,他们可能只是点击“e”或小狐狸图标来访问互联网。然后是像阅读这篇博客的人一样的人。
第二种类型的人都知道如何使用 cmd 或其他方法打开新标签页,并且肆意地这样做。
第一种类型的人在他们的后退按钮停止工作时会感到非常沮丧,因为他们不知道如何以其他方式返回。
因此,对于这两种类型的用户来说,强制使用新窗口通常都是不好的。
通常我会同意这一点,但我们的用户测试结果并非如此。我们的大多数用户,我将他们归类为那些对浏览器一无所知或不在乎的人,期望某些链接在新窗口中打开,并在其行为不符合预期时提供反馈。
那么,在什么时候你因为不想使用特定技术而推翻你自己的用户研究?
这很有趣,Jason,当然,特定案例的用户测试始终会覆盖一般原则。
我刚刚注意到原始文章中没有讨论的内容,那就是能够通过某种 UI 提示(如不同的光标或图标:伪元素)来识别内部/外部链接的不同行为。
如果有一个标准化的符号来表示在新窗口中启动就好了……
使链接在新标签/窗口中打开的行为可能是我在浏览时遇到的最烦人的事情,因为我的电脑刚刚做了一些我不想做的事情。
这就是为什么我会继续使用 Firefox 而不是 Chrome。在 Firefox 中,你可以更改设置,以便链接始终在同一标签页中打开,除非你选择在新标签页中打开链接。
iOS 上的 iCab Mobile 提供了相同的控制功能。
我过去不得不处理其中的一些问题,并且总是主张让用户自己决定。
仔细想想,我已经很久没有使用 target _blank 了。可能只有一两个客户对链接目标很挑剔。当我想在新标签页或窗口中打开链接时,我倾向于在浏览器中这样做。
我支持 target _blank,因为我天生讨厌关闭标签页时才意识到自己丢失了来源页面的情况……
抱歉,但我天生的 UX 体验是每个网站对应一个标签页,当我不再需要某个主题时,我就会关闭所有标签页。对我来说非常简单明了。
在大多数浏览器中,你始终可以撤消关闭标签页的操作,例如,在 Chrome 中,shift+cmd+t,在 Safari 中,cmd+z。
似乎很多人都是网站设计的新手。
我完全同意,target=”_blank” 需要有充分且具体的理由才能使用。这是我不得不进行过几次的斗争(尽管谢天谢地,我总是设法赢得了胜利)。除了尊重默认行为之外,还有一个问题是,作为用户,我可以轻松地选择使用鼠标中键在新标签页中打开,但我无法轻松地选择让 _blank 在同一窗口中打开(即使我事先知道我必须这样做)。
至少从99年开始,在新窗口/标签页中打开链接就是一个可用性问题。 参考这里 我不认为浏览器标签的出现改变了任何事情。我在测试网站时经常看到,用户没有意识到打开了新的窗口/标签页,也没有意识到这一点,然后他们尝试使用后退按钮。
因为我的每篇文章中都有很多外部链接,为了方便访问和减少干扰,我更倾向于在新标签页中打开它们。
首先,文章很棒。
很多论点在方法上显得有些精英主义。最佳实践归根结底取决于UI/UX。正如一些评论者指出的,我们无法控制外部网站对用户的操作。
例如,人们经常在新的网站上点击链接,从而偏离主题。当外部网站链接到另一段内容/网站,并且该页面使用JavaScript劫持后退按钮或使用重定向进行页面加载时会发生什么?这对那些无法通过后退按钮返回的用户来说非常令人沮丧。关闭该标签页更容易。瞧,我们的网站还在那里。
不要假设仅仅因为你的意图值得称赞,网络上的其他部分就会配合你。
归根结底,你是为了设计一个网站来呈现尽可能好的用户体验和客户/公司的品牌,还是为了设计一个网站来展示你对合规设计和代码的了解。
如果你不喜欢我的网站在新标签页中打开,因为你本来打算离开我的网站,那就关闭我的标签页。但根据我的经验,当用户点击一个指向外部网站的链接时,他们会期望在新标签页中打开,并在完成外部内容后自动关闭该标签页。与因为新标签页打开而导致的后退按钮尴尬相比,用户错误地关闭主窗口以为它是一个新标签页导致的用户体验问题更多。
与因为新标签页打开而导致的后退按钮尴尬相比,用户错误地关闭主窗口以为它是一个新标签页导致的用户体验问题更多。<- 140个字符(这是一条推文!)
När jag använder min telefon jag mycket hellre gå med fram och tillbaka i stället flytta flikar hela tiden。
我完全同意这些理由。似乎没有人考虑过智能手机上的用户体验和行为?
当你使用移动设备时,你对target=_blank的感觉如何?在某些型号中,你只能拥有特定数量的标签页,当你打开新网站时,旧的标签页会被“覆盖”。
如果你的手机可以处理更多标签页,那么找到并跟踪你的标签页就非常困难。
当我使用手机时,我更愿意来回浏览,而不是一直查看标签页。
一开始阅读这个帖子并同意Chris的观点,现在我读到最后却改变了想法。在阅读内容和点击其中的链接时,确实存在一些可用性问题。我预计大多数人(泛化)会希望保留他们正在阅读的文章并查看新的文章。新标签页的好处在于,特别是如果用户漫游到一个新网站并深入其中,他们只需点击一下(关闭标签页)即可返回到他们来的地方,而不是一系列“后退按钮”才能到达那里。
可能只有在这个帖子中评论的人才知道Ctrl+Click可以打开新标签页,所以我认为我将改变主意,选择新标签页,尽管我理解顶部的“良好示例”中的一些仍然经得起时间的考验。
对于任何感兴趣的人,这里有一篇很好的文章可以平衡Chris的观点。
http://uxmovement.com/navigation/why-external-links-should-open-in-new-tabs/
那篇UX Movement的文章是垃圾。我读它是为了寻找一个关于在新窗口中打开网站的反驳论点。里面没有一丝有力的证据。他们声称标签改变了游戏规则,但这根本不是真的。
在这个帖子中几乎没有人提到过**移动设备**。例如,在iOS中打开一个新标签页很糟糕,而且非常耗时。要返回,我需要在两个不同的位置物理点击两次。
设计师的问题是他们需要放手控制。用户才是掌控者,而不是你。不要试图通过“欺骗”用户或认为自己与用户有任何相似之处来保护用户免受伤害。我注意到新设计师会陷入这样的陷阱,认为“好吧,我喜欢在新窗口中打开标签页,所以它一定很有用。”事实并非如此。
底线:不要破坏我的后退按钮。
我不确定“垃圾”是否公平。桌面用户打开多个标签页并能够找到他们想要的东西或在几个网站之前查看过的内容的例子非常引人注目。我想建议大多数人的浏览习惯就像一个金字塔,从一个地方开始,迅速向外扩展(IYSWIM?),在这种情况下,后退按钮成为负担。后退按钮的线性进度在这种情况下可能很笨拙。
至于移动设备,我认为你说的很有道理,我仍然无法弄清楚iOS7上的Safari。不过,移动设备上的浏览习惯可能略有不同,我想没有人提倡不同的体验;)
再说一次,你假设大多数用户都像你和我一样,喜欢打开多个标签页/窗口。测试一些不太懂电脑的用户,你会发现当他们的后退按钮不起作用时,他们很快就会感到困惑。不存在“后退按钮疲劳”这种说法。
他们不妨公开表示,点击太多次会导致“鼠标疲劳”,并且应该随机禁用用户的鼠标,以便用户被迫更多地使用键盘。
Smashing Mag在2008年对此进行过很好的总结,但重新阅读后,研究结果至今仍然有效。
http://uxdesign.smashingmagazine.com/2008/07/01/should-links-open-in-new-windows/
我实际上不小心回复了Dani的评论线程,内容更适合你们俩,Dave和Peter;)
为了平衡我们的假设,我观察了我的父母和岳父,他们都能轻松地在标签页之间切换,因为标签页清楚地显示着“奶酪网站”和“火腿网站”。当你开始说“后退”时,他们会因为退得太远而回到Chrome起始页而感到困惑。鼠标疲劳可能有点夸张(除非你有关节炎!)。
话虽如此,我承认可能存在一些关于返回哪个标签页的疑问。
似乎这里每个人都在讨论哪个更“错误”,新标签页还是同一标签页。但这似乎并非文章的重点——文章的重点是默认行为以及将非默认行为强加于用户并限制选项,我认为更容易达成共识的是“那是错误的”。后续的想法“因此,当前的非默认行为是不好的行为”似乎更像是意识形态上的,而不是关注用户。
关于此的数据确实很有趣,但事实是,似乎这两种行为都有其优缺点,并且两种用户偏好都存在。我们无法预测或规定用户如何学习网络上的操作方式,或者他们发现哪种行为更方便或更令人困惑。即使像80/20的比例一样清晰(这似乎不太可能),使网络对20%的用户不太友好也是不切实际的。
在非标签浏览时代,默认行为是否仍然有意义,我们是否可以不用默认行为,如何使用或提供各种设置来为任何口味或观点创造最佳的用户体验,而不会限制或强制,这是一个值得讨论的话题。“我喜欢我的后退按钮,但我的爷爷感到困惑”对于识别情况非常有用,但它对于从这些情况中判断哪一个是更好的用户或开发人员却没有用。
那么……有什么想法可以如何通过合理的默认设置和不受限制的设置来满足所有场景?
好吧,公平地说;这与任何开发人员无关。
为什么在新标签页中打开链接会破坏后退按钮?这到底是怎么回事?我知道我来自哪里,那么浏览器怎么会失去跟踪?
后退按钮,即使在新标签页中,也应该关闭标签页并带你回到你来的地方。如果来自的标签页不再存在,它应该像常规的后退按钮一样工作。很容易,对吧?
至于争论所有这些内部与外部链接的偏好——这才是垃圾。两种方式都不是解决方案——我们不会很快改变网络或 100% 用户的期望。
真正的解决方案是,浏览器允许用户强制执行他们自己的个人偏好——类似于他们如何强制执行字体大小偏好的概念。
开发人员应该如何处理他们的链接?
对用户在特定情况下可能具有的偏好进行有根据的猜测。
你是否估计你的大多数用户会欣赏在同一标签页中打开的PDF?大多数用户是否会欣赏源引用链接在新标签页中打开引用的文章,同时保留当前文章?
这是开发人员需要做出的决定,也是用户需要覆盖的决定。
PS——我刚刚从女朋友的GTalk聊天窗口中打开了一个外部imgur链接……如果你的整个Gmail/聊天会话丢失了,你不会生气吗?那该有多蠢?笼统的规则不是这里的解决方案。
它应该遵循使用场景。我们使用target=”_blank”来支持用户阅读我们的技术雷达报告:http://radar.spree.de
如果用户对某种特定技术感兴趣并点击链接,他们就不会丢失阅读位置,并可以并行获取更多信息。
我之前一直使用 target=”blank”。正因为如此,页面无法在新窗口或选项卡中打开。感谢这篇文章,我读完之后就修复了这个问题。
我总是使用 target=”_blank”!
我讨厌不得不点击后退按钮。我的意思是,在新标签页中打开它更有意义,不是吗?
我讨厌网页开发者说教,并在“正确的事情”的讨论中陷入困境。这让我想起了关于strong与bold的毫无意义的争论(当然,在浪费了所有人的时间之后,粗体和斜体现在又回到了HTML 5中)。
是否使用_blank是一个个人决定,与网页开发的技巧无关。我们唯一需要知道的是,在XHTML 1.0严格模式下,如果链接具有target=”_blank”,则无法验证。幸运的是,XHTML现在已经消亡,所以_blank完全没问题。
我完全同意上面Paul Neave的观点。我总是对外部链接使用target=”_blank”,仅仅是因为并非每个用户都知道如何在新的标签页中打开链接,而且这样做很方便。你不需要自己返回,你所在的标签页保持打开状态,如果你想继续浏览,你可以继续。
在我看来,在这种情况下没有好坏之分。
但是,将访客留在自己的网站上有什么错呢?虽然我不使用Taget=”_blank”,但我曾想过要使用它。但现在我不会这么做了。感谢你解除了我的困惑。
当涉及到网页/应用程序可用性问题时,我们需要区分业务目标和用户体验;区分基于研究的决策和个人意见;以及区分用户需求和个人动机。记住这些区别可以帮助我们开发一个既能让用户满意又能让网站/业务所有者满意的解决方案。
我犹豫是否要根据我想要如何浏览网页,或者更糟糕的是,我“认为”人们如何浏览网页来实现UI元素/行为。我们需要了解人们在与UI元素交互时期望什么。网页设计师/开发者理所当然地认为他们了解浏览器。大多数人,即使是最精通的人,也不了解我们对浏览器及其所有功能的了解。因此,如果我们要改变人们多年来习惯使用的默认UI行为,我们最好有一些可靠的数据来支持它,否则**糟糕的用户体验会导致业务目标无法实现**。
对于任何感兴趣的人
我为自己进行的一项关于不同国家/地区使用_blank目标锚点的简短研究。
空白锚标记的好奇心
我发现中国和台湾选择发布大量使用_blank目标的内容很有趣。是中国网页开发者阻止公众养成ctrl-点击的习惯吗?...还是反过来?
我认为反对使用“_blank”的论点中有一个微妙的点被忽略了。如果你不去管它,用户可以选择是否在新窗口中打开。如果你替用户做出这个决定,你可能会惹恼一些人。
不做任何事情符合浏览器的预期行为,因此也符合互联网的默认行为(从用户的角度来看)。如果他们点击某个东西,他们并不能真正责怪你让他们失去了位置。在第二种情况下(使用“_blank”),你正在替用户做决定,如果他们生气了——他们会对你所在的网站生气。
如果用户要生气,他们就会生气,他们对谁生气才是最重要的。我发现很多不想学习快捷键来让事情变得更好的用户总是半途而废地感到恼火,因为他们甚至只是在看屏幕。
但是,我认为在某些情况下使用新窗口是可以的。并不是网站上每个外部链接都需要这样做。除非你是Facebook,但你不是Facebook。如果你正在做社交媒体类型的事情,人们一直在发布链接,那么在新窗口中打开它们是有意义的。在购物场景中,你可能会丢失有价值的信息,但其中很多可以通过JS来处理,也可能应该通过JS来处理。
所有这些逻辑在我看来都很有道理,直到我们正在构建的响应式网站在Windows Mobile上打开新窗口时遇到了障碍。这是不允许的,只能在同一标签页中打开。所以我们试图保存页面上的用户输入状态,并且只在页面上学习链接,但使用_blank无法做到这一点...所以我正在寻找替代方案*叹气*
如果你来到我家(或我的商店),我对你的行为有一定的期望。如果这让你感到非常不受欢迎,你可能就是这样。如果我去你的网站,你期望我在新标签页中打开链接,我会感到恼火吗?不会。我知道如何自己打开一个新标签页吗?当然。我也知道如何关闭标签页。
此外,你可以设置你的浏览器忽略链接上的target=”_blank”标签,所以这并不是说“哦,天哪,我想在这个标签页中打开,但网站所有者不允许我这样做!!1”。
网络是属于我们自己的,我们想做什么就做什么。一直都是。我没有时间理会“你”愚蠢的target=”_blank”标签:我的鼠标有三个按钮!
一个很好的理由:我的客户想要这样。
像往常一样,客户愚蠢得像砖头一样。
而且你可能就是那种认为每个人都可以玩,每个人都能赢的混蛋。所以你想让访客喜欢你,真是胡说八道。你的文章让我比以往任何时候都更想使用target = “_blank”。希望你能来拜访。
我认为另一个始终可以接受的用例是使用mailto协议的链接——对于拥有mailto链接的网络处理程序的用户,这将在新标签页中打开邮件撰写窗口,这绝对是我期望发生的事情,而对于其他用户,行为将保持不变。@chris,你对此有什么看法?
简单而最好的理由,我不想让人们离开我的内容(**这就是它被构建的原因**);)。
我将target =”_blank”用于外部链接。尤其是在所有主流浏览器都支持标签浏览的情况下,任何人都认为这不是最合乎逻辑的方法都令人着迷。我也讨厌网站不使用它。然后我必须返回并右键单击才能在新标签页中打开新网站。