在網頁中,經常碰到這種情況:點擊某些鏈接,就會彈出新窗口,原來的頁面部改變,而有些鏈接,就在原窗口上打開新的鏈接,原窗口沒有了,被覆蓋了。這個是爲什麼呢?怎麼實現的呢?
target=_blank,這個標籤,就是解決這個問題的。<base target=_blank>是將基本鏈接的目標框架都改爲新頁打開,即彈出新窗口。<a>、<form>等很多標籤都支持target="black"的屬性,可以在這樣的標籤裏單獨做設置,比如:
<a href="xxx.htm" target="_blank">超鏈接內容</a>
<form action="xxx.htm" target="_blank">表達內容<input type="submit" value="提交按鈕"></form>
如果不加這一句,默認均爲本頁刷新,即target="_self"。還有兩個這樣的標籤,<target=_top>表示在整頁窗口打開,<target=_parent>表示在父窗口打開。
<a href="http://www.bookboy.cn/" target="_blank">單獨定義,新窗口打開</a>
<a href="http://www.bookboy.cn/" target="_self">單獨定義,相同窗口打開</a>
<a href="http://www.bookboy.cn/" target="_top">單獨定義,整頁窗口打開</a>
<a href="http://www.bookboy.cn/" target="_parent">單獨定義,父窗口打開</a>
另外,這只是單獨設置,如果有在某個頁面上有很多的鏈接或者form表單,逐一的添加標籤會很麻煩,有沒有類似批處理的呢?
這就要用到<base target=_xxx> ,這是基本的HTML語言。用<base target=_××>來設置這個網頁所有鏈接的目標窗口。也就是說,網頁中只要添加<base target=_××>這句,那麼所有的超鏈接就無須單獨設置。最好將這句寫在<head>和</head>之間。例如
<base target=_blank>表示網頁中所有的超鏈接的目標地址都在新建窗口中打開。
<base target=_self>表示網頁中所有的超鏈接的目標地址都在原窗口上打開。
當然,這樣的標籤有時也會碰到麻煩。
1 不符合標準
當我們使用W3C過渡型標準時,即DOCTYPE(xh tml1-transitional. dtd),沒有問題,但是使用嚴格的標準時,即DOCTYPE(xhtml1-strict.dtd),就會出錯,錯誤提示:
"there is no attribute target for this element(in this HTML version)"
原因是,外國人認爲,不經過用戶同意,就隨便打開新窗口,是不禮貌的,不尊重用戶的,可參看 http://bbs.chinahtml.com/showthread.php?t=53657
那碰到這種情況時怎麼辦呢?
HTML4.0增加了一個新屬性:rel,這個屬性用來說明鏈接和包含此鏈接頁面的關系,以及鏈接打開的目 標。rel有許多的屬性值,比如next、previous,、chapter、section等等。我們要使用的就是rel="externa l"屬性。原來這樣寫的代碼: