我记得在某个地方读到,在HTML5中使用target="_blank"
是不再被认可的,但我现在找不到了。
是否继续使用target="_blank"
是可以的吗?
我知道这通常被认为是一个不好的主意,但这是打开类似PDF这样的东西的新窗口最简单的方法,而且也不需要依赖JavaScript。
我记得在某个地方读到,在HTML5中使用target="_blank"
是不再被认可的,但我现在找不到了。
是否继续使用target="_blank"
是可以的吗?
我知道这通常被认为是一个不好的主意,但这是打开类似PDF这样的东西的新窗口最简单的方法,而且也不需要依赖JavaScript。
看起来 target="_blank"
仍然可以使用。在最新的HTML5草案中,它被列为浏览上下文关键字。
target="_blank"
会导致每次用户点击链接时都会打开一个新窗口。除非这确实是您想要发生的事情(很少有这种情况),否则请考虑使用target="somethingUnique"
,这样即使用户多次点击链接,他们也只会得到一个打开的窗口。这将为用户带来更好的用户体验。 - BanksySan在IT技术中,使用target="_blank"
是可以的;然而,在XHTML中已被废除,因为在大多数浏览器中,新窗口会弹出警告框。在XHTML中,如果有target属性,则总是显示错误信息。
但是,在HTML 5中重新引入了此功能,因为我们仍然需要它。它是我们的好朋友,我们不能放手。
永远不要放手。
target="_blank"
,但我个人尽量不使用它(即使是用于在新窗口中打开PDF文件)。target
属性,a
元素的含义会改变吗?”如果不会,那么代码就不应该出现在HTML中。(实际上,我很惊讶W3C还保留了它...我猜他们真的无法放手。)
浏览器的行为,特别是与用户的交互行为,应该使用客户端脚本语言(如JavaScript)来实现。由于您希望浏览器以特定方式运行,例如打开新窗口,因此应使用JS。但正如您所提到的,这种行为需要浏览器依赖JS。(尽管如果您的网站能够优雅地降级或逐步增强,或其他,那么它仍然可以正常工作。禁用JS的用户不会错过太多内容。)
话虽如此,这两个选项都不是正确答案。在某些地方有一种观点认为,链接如何打开最终应由最终用户决定。 以这个例子为例。
You're surfing Wikipedia, getting deeper and deeper into a rabbit hole. You come across a link in your reading.这是打开像PDF这样东西的最简单的方式
这也是最容易让非Windows用户感到恼怒的方式。在其他平台上,PDF可以在浏览器中正常打开。打开新窗口还会破坏导航历史记录,并且在智能手机等较小的平台上会使事情复杂化。
不要仅仅因为旧版Windows有缺陷而打开像PDF这样的东西时打开新窗口。
大多数Web开发者只使用target="_blank"
来在新标签页中打开链接。如果您仅使用target="_blank"
来在新标签页中打开链接,则易受攻击。当您在新标签页中打开链接(target="_blank"
)时,新标签页中的页面可以访问初始标签页并使用window.opener
属性更改其位置。
Javascript代码:
window.opener.location.replace(malicious URL)
预防措施:
rel="nofollow noopener noreferrer"
虽然在HTML5中“target”仍然可接受,但不建议使用。要链接到PDF文件,请使用download属性,而不是“target”属性。
以下是一个示例:
<a href="files/invoice.pdf" download>Invoice</a>
如果原始文件名是为唯一文件存储而编码的,则可以通过为下载属性分配一个值来指定用户友好的下载名称:
<a href="files/j24oHPqJiUR2ftK0oeNH.pdf" download="invoice.pdf">Invoice</a>
请记住,虽然大多数现代浏览器支持此功能,但有些不支持。详情请参见caniuse.com。
当然可以!
http://www.w3.org/TR/2010/WD-html5-20100624/text-level-semantics.html#the-a-element
<input type="button" id="idboton" value="google" name="boton" />
<script type="text/javascript">
$('#idboton').click(function(){
window.open('https://www.google.com.co');
});
</script>