在HTML5中使用target =“_ blank”是否正确?

我记得在HTML5的某个地方,HTML5中不再使用target="_blank" ,但现在找不到它。

继续使用target="_blank"吗?

我知道这通常被认为是一个糟糕的主意,但是最简单的方法就是打开一个类似PDF的新窗口,而且也不需要依靠JavaScript。

它看起来像target="_blank"仍然是好的。 它在最新的HTML5草案中被列为浏览上下文关键字。

可以使用target="_blank" ; 这在XHTML中已经消失了,因为在新窗口中定位会在大多数浏览器中popup警报。 在validation中,XHTML将始终显示目标属性的错误。

HTML 5把它带回来,因为我们仍然使用它。 这是我们的朋友,我们不能放过。

绝不放手。

尽pipe在HTML5中 target="_blank"是可以接受的 ,但我个人尽量不要使用它(甚至在新窗口中打开PDF文件)。

HTML应该定义含义和内容 。 问自己, “如果target属性被删除, a元素的含义是否会改变?”如果不是,代码不应该在HTML中。 (其实我很惊讶的W3C保持它…我想他们真的不能放过。)

浏览器行为 ,特别是与用户的交互行为 ,应该使用JavaScript等客户端脚本语言来实现。 既然你想让浏览器以一种特定的方式行事,即打开一个新窗口,你应该使用JS。 但正如你所说,这种行为需要浏览器依靠JS。 (虽然如果你的网站优雅地退化了,或者是渐进地增加了,那么它应该还是可以的,禁用了JS的用户不会错过。

这就是说,这些都不是正确的答案。 有一个地方的意见, 如何链接打开最终应由最终用户决定 以这个例子。

你在冲浪维基百科,越来越深入兔子洞。 你在阅读中遇到了一个链接。

假设您想要在返回之前快速浏览链接的页面。 您可以在新标签中打开它,然后在完成后closures它(因为点击“后退”button并等待页面重新加载时间过长)。 或者,如果它看起来很有趣,而且你想保存它以后呢? 也许你应该在新的背景标签中打开它,并不断阅读当前页面。 或者,也许你决定完成阅读这个页面,所以你只要按照当前标签中的链接。

关键是,你有自己的工作stream程,你希望你的浏览器相应的行为。 如果您为您做出这些决定,您可能会感到非常沮丧。

有人说,networking开发者应该清楚地知道他们的链接到底在哪里,他们引用什么types和/或哪些格式的源,以及他们做了什么。 工具提示可以成为你的朋友(除非你使用平板电脑或手机;在这种情况下,请在移动网站上指定这些提示)。 我们都知道,在某个我们没有预料到的地方,或者做出一些我们并不想要的事情的时候,我们会感到有多么的沮丧。

最简单的方法就是打开一个类似PDF的新窗口

这也是惹恼非Windows用户的最简单的方法。 PDF在其他平台上的浏览器中打开得很好。 打开一个新窗口也会弄乱导航历史,并在智能手机等小型平台上复杂化。

不要仅仅因为老版本的Windows被打破而为PDF之类的东西打开新的窗口。

尽pipe目标在HTML5中仍然可以接受,但并不是首选。 要链接到PDF文件,请使用下载属性而不是目标属性。

这里是一个例子:

 <a href="files/invoice.pdf" download>Invoice</a> 

如果原始文件名被编码为独特的文件存储,则可以通过为下载属性赋值来指定一个用户友好的下载名称:

 <a href="files/j24oHPqJiUR2ftK0oeNH.pdf" download="invoice.pdf">Invoice</a> 

请记住,虽然大多数现代浏览器支持这个function有些可能不。 请参阅caniuse.com了解更多信息。

大多数Web开发人员仅使用target="_blank"打开新选项卡中的链接。 如果仅使用target="_blank"打开新选项卡中的链接,则攻击者很容易受到攻击。 在新选项卡( target="_blank" )中打开链接时,在新选项卡中打开的页面可以访问初始选项卡,并使用window.opener属性更改其位置。

Javascript代码:

 window.opener.location.replace(malicious URL) 

预防:

 rel="nofollow noopener noreferrer"