直到今天我还在想为什么target="_blank"
还没有实现target="blank"
。我相信浏览器也能理解这一点。
此决定/规范是否有任何历史或技术原因?
答案1
如果你使用target="blank"
你的链接将要在新选项卡/窗口中打开。但是,有一个细微的差别。再次单击链接将重用第一次打开的窗口,而不是打开新窗口。
这是因为该target
属性不仅仅用于打开新窗口。它有四个内置值,但也允许您指定自己的目标。如果您查看相关W3 学校页面它显示以下选项:
_blank
在新窗口或选项卡中打开链接的文档_self
在被点击的同一框架中打开链接的文档(这是默认设置)_parent
在父框架中打开链接的文档_top
在整个窗口中打开链接的文档<framename>
在命名框架中打开链接的文档
除非您对 HTML 框架有所了解,否则上述大部分内容都毫无意义。使用 HTML<frameset>
标签可以将浏览器窗口拆分为单独的部分(框架),每个部分都有自己的页面。通过为框架命名并target
在链接中使用属性,可以控制哪个框架应显示相关内容。
但是浏览器必须应用目标属性的一些附加规则:
- 如果目标是用户指定的名称,那么它必须以字母开头(没有下划线、数字等)
- 如果目标是用户指定的名称,但没有框架/窗口与该名称匹配,则使用该名称创建一个新的选项卡/窗口。这就是
target="blank"
它如此工作的原因。
基本上,没有理由改变当前的惯例,因为这_blank
是一种特殊情况。原始类型的框架可能不再被大量使用,但还有其他情况,你可以拥有与目标属性一起工作的命名对象,例如 iframe,它是直接嵌入到页面中的单个框架。改变标准会破坏许多现有页面,而不会带来任何好处。