html中設置鏈接目標的方法是通過標簽的target屬性,常用值包括:1._self(默認,在當前窗口打開);2._blank(在新窗口/標簽頁打開,推薦配合rel=”noopener”使用以避免安全風險);3._parent(在父框架中打開);4._top(在整個窗口中打開,移除所有框架)。實際開發中_blank最常用,但需注意用戶體驗和安全問題,而_parent和_top主要用于處理框架集場景。
HTML中設置鏈接目標,簡單來說就是告訴瀏覽器,點擊鏈接后應該在哪里打開新的頁面。這通常通過標簽的target屬性來實現。
解決方案 target屬性定義了鏈接打開的位置。常用的值包括:
- _self: 默認值,在當前窗口/標簽頁中打開鏈接。
- _blank: 在新的窗口/標簽頁中打開鏈接。
- _parent: 在父框架集中打開鏈接。如果當前頁面沒有框架,則與_self相同。
- _top: 在整個窗口中打開鏈接,移除所有的框架。
舉個例子:
<a href="https://www.example.com" target="_blank">在新標簽頁打開 Example</a> <a href="https://www.example.com" target="_self">在當前標簽頁打開 Example</a>
實際開發中,_blank是最常用的,但要小心濫用。
立即學習“前端免費學習筆記(深入)”;
如何正確使用target=”_blank”?
target=”_blank”雖然方便,但存在安全風險。新打開的頁面可以訪問你的window.opener對象,這意味著它可以修改你的原始頁面。為了緩解這個問題,可以添加rel=”noopener”或rel=”noreferrer”屬性。
- rel=”noopener”:阻止新頁面訪問window.opener,并確保新頁面運行在獨立的進程中。這是推薦的做法。
- rel=”noreferrer”:除了阻止訪問window.opener外,還會阻止新頁面接收Referer頭信息。
所以,推薦的寫法是:
<a href="https://www.example.com" target="_blank" rel="noopener">安全地在新標簽頁打開 Example</a>
為什么有些網站不推薦使用target=”_blank”?
用戶體驗是關鍵。強制在新標簽頁打開鏈接可能會讓用戶感到困惑,特別是當用戶習慣于使用瀏覽器的后退按鈕時。更好的做法是讓用戶自己選擇是否在新標簽頁打開鏈接(通過右鍵菜單或快捷鍵)。
當然,在某些情況下,target=”_blank”是合適的。比如,當鏈接指向一個外部網站,并且你希望用戶在訪問后仍然停留在你的網站上。
_parent和_top有什么實際應用場景?
這兩個屬性主要用于處理框架集。框架集現在已經很少使用了,但了解它們的工作原理仍然有價值。
- _parent:如果你的頁面嵌套在框架中,使用target=”_parent”會在父框架中打開鏈接。
- _top:無論你的頁面嵌套了多少層框架,使用target=”_top”都會在整個瀏覽器窗口中打開鏈接,移除所有框架。
例如,如果你的網站被嵌入到別人的網站的框架中,你可以使用target=”_top”來“跳出”框架,讓你的網站在整個窗口中顯示。