關於target="_blank"去留的問題在網上已經被反复爭議很多次了。有的說要留,有的說要去掉。主張留的一方主要是考慮到target="_blank"的屬性目前來講還沒有一個好的方式來解決,而主張去的一方則拿出了rel與JS的解決方案。 target="_blank"是否的存在是否有必要我想目前還有很多正處在一種盲區。我查閱了相關的文獻,發現其實情況並非是我們所想的那樣,事實上target="_blank"並非是不符合標準的,而用rel與JS的解決方案也是沒有必要的,因為這是個誤區,只要我們了解了rel與target的真正含義我們就清楚了其實這裡本不應存在爭議。下面我將我通過查閱文獻所得到的知識與大家分享,我們先來了解一下target與rel的含義:
target ,答應指定在什麼位置顯示已經選擇的超鏈接內容。也就是說鏈接的內容將在什麼樣的窗口被顯示。 target 的屬性值有四個保留的名稱,分別是:_blank,_self,_parent,_top。其中_blank的意思是瀏覽器總在一個新打開的、未命名的窗口中載入target="_blank"鏈接的文檔。這里大家也許會很不理解“未命名”是什麼意思。事實上target 是可以給新打開的窗口賦一個ID,例如:target="name" 這就表明通過target="name"鏈接載入的文檔將會在一個叫"name"的窗口顯示。假如沒有ID為"name"的窗口,那麼瀏覽器就會新建一個名為"name"的窗口來顯示鏈接文檔。假如當前窗口的ID就是"name"那麼這個鏈接文檔就會在當前的窗口中替換原有的內容顯示出來。而_self的意思其實就是當前文檔,<a>的默認目標就是_self,這個屬性值一般來說是用不到的。 _parent是使鏈接文檔在父級窗口顯示,這個屬性值只在框架結構中使用,假如身本就是頂級框架,那麼其作用與_self相同。 _top同樣是應用在框架中的,但是他的效果是清除框架來顯示目標文檔。這對於從框架結構轉向無框架結構是很有作用的。
現在我們知道了,target 是一目標顯示的屬性與瀏覽器密切相關的。那麼rel又是什麼呢, 為什麼很多人把他當作是target 的替代屬性呢?下面我們就來熟悉一下rel。其實不只有一個rel還有一個與之對應的屬性叫rev,這兩個屬性的意思分別是:從源文檔到目標文檔的關係;從目標文檔到源文檔的關係。這裡的源文檔可以理解為鏈接所處在的當前文檔,而目標文檔也就是這個鏈接將要打開的文檔。這下我們應該清楚了,其實rel與rev是一種文檔之前的鏈接關係,而並非是與瀏覽器相關的如何顯示目標文檔的屬性。
那麼rel與rev有哪些關係呢?下面將一一列取並解釋其中的含義:
示例代碼[www.CuoXIn.com]