a標簽有一個target屬性用於控制當a標簽被點擊後的動作,”_blank”是target屬性的擦後果常用值之一,它會使a標簽被點擊後打開一個新的窗口(如果用戶有做設置的話,打開的可能是新標簽頁)。這樣的設置在HTML中是錯誤的(也許這個屬性只能用在XHTML中?),但是這個值可以達到人們要的效果,所以它仍然被使用。現在”_blank”在HTML5中式完全有效的,但我們要探討一下什麼時候才應該使用它。
糟糕的理由之一:你習慣使用”_blank”
不管人們是怎麼想的,浏覽器的默認行為應該是在當前頁面打開鏈接(就像a標簽中有target="_self"
的屬性設置一樣 ),所以target="_blank"
是在對這一默認行為做改變。或許你的習慣是點擊任何鏈接都會打開一個新的窗口或者標簽頁,但很可能大部分人更習慣於使用浏覽器的默認行為,這樣當其他用戶在浏覽你所寫的頁面的時候他們會覺得很不舒服。
如果你所做的產品目標用戶只是你,那當然隨你高興。但一旦其他人會使用你的站點,那還是使用默認行為吧。用戶可以使用鍵盤元件[e.g. Ctrl]+點擊目標鏈接的方式打開一個窗口/新標簽頁。這樣對用戶來說點擊鏈接顯示網頁的方式既可以是當前頁面打開也可以是打開新窗口的,這對於你而言也是一樣的。而且這樣一來,你也不用把鏈接的行為加諸到每個用戶上。
當一定要使用target="_blank"
的時候再去使用它。
糟糕的理由之二:用戶,請一直浏覽我的頁面吧
其他的站點都太普通了,只有我們的站點如此特別。我們的站點是多麼的重要,用戶絕對不應該離開它。
糟糕的理由之三:“內部”鏈接和“外部”鏈接表現應該不同
“內部”鏈接(鏈接到自己的站點)使用的浏覽器默認行為,但是“外部”鏈接(鏈接到其他站點)將會在新窗口/新標簽頁中打開。這一點和上文所說的另外兩點是有關聯的,也許這一行為更加糟糕。你明知道正常的鏈接樣式會有更好的體驗,但這麼做了意味這用戶會在點擊鏈接時離開你的站點,所以你寧可放棄更好的體驗也想留住用戶。
我曾聽很多人說過“內外部”鏈接樣式不統一是“傳統”,但我不認為這是件好事。
糟糕的理由之四:鏈接指向是一份PDF文件
除了PDF文件外還有很多其他類型的非Web資源都因為文件類型的原因而作為新窗口/新標簽頁打開,它們和普通的網頁沒有區別,為什麼要被“區別對待”呢?假如你希望讓用戶不在浏覽器中打開文件而是直接下載的話,可以使用download屬性。
糟糕的理由之五:我的客戶希望這樣
我感受到了“客戶怎麼說就怎麼做,不需要為此與客戶起沖突”的意思了。但其實這個問題大可不必變成一個沖突。如果他們連這一點都不信任你,那麼你的客戶要信任你些什麼呢?換做我的話會這麼和客戶說的:
按照常理打開一個鏈接的樣式應該是遵照浏覽器的默認行為。如果我們想要改變這一行為的話一定有我們的原因,但對於大部分鏈接依