![HTML - target="_blank" 帶底線的歷史或技術原因?](https://rvso.com/image/1395403/HTML%20-%20target%3D%22_blank%22%20%E5%B8%B6%E5%BA%95%E7%B7%9A%E7%9A%84%E6%AD%B7%E5%8F%B2%E6%88%96%E6%8A%80%E8%A1%93%E5%8E%9F%E5%9B%A0%EF%BC%9F.png)
直到今天我還在想為什麼target="_blank"
還沒成為target="blank"
。我相信瀏覽器也能理解這一點。
此決定/規範是否有任何歷史或技術原因?
答案1
如果您要使用target="blank"
您的鏈接將要在新分頁/視窗中開啟。然而,有一個微妙的區別。再次按一下該連結將重複使用第一次開啟的窗口,而不是開啟一個新視窗。
這是因為該target
屬性的用途不僅僅是開啟一個新視窗。它有四個內建值,但也允許您指定自己的目標。如果你看一下相關的W3 學校頁面它顯示以下選項:
_blank
在新視窗或選項卡中開啟連結文檔_self
在單擊的同一框架中開啟連結文件(這是預設值)_parent
在父框架中開啟連結文檔_top
在整個視窗中開啟連結文檔<framename>
在命名框架中開啟連結文檔
除非您對 HTML 框架有所了解,否則大部分內容都沒有意義。使用 HTML<frameset>
標籤可讓您將瀏覽器視窗分成單獨的部分(框架),每個部分都有自己的頁面。透過為框架指定名稱並使用target
連結中的屬性,可以控制哪個框架應顯示相關內容。
但瀏覽器必須套用一些針對目標屬性的附加規則:
- 如果目標是使用者指定的名稱,則它必須以字母開頭(無底線、數字等)
- 如果目標是使用者指定的名稱,但沒有框架/視窗與該名稱匹配,則使用該名稱建立新選項卡/視窗。這就是為什麼
target="blank"
它會這樣工作。
基本上沒有理由改變目前的約定,因為這_blank
是一個特殊情況。原始類型的框架可能不再使用太多,但在其他情況下,您可以使用目標屬性使用的命名對象,例如 iframe,它是直接嵌入到頁面中的單一框架。更改標準會破壞許多現有頁面,而不會帶來任何好處。