在現有窗口中打開新窗口,即target_blank的問題

        在網頁中,經常碰到這種情況:點擊某些鏈接,就會彈出新窗口,原來的頁面部改變,而有些鏈接,就在原窗口上打開新的鏈接,原窗口沒有了,被覆蓋了。這個是爲什麼呢?怎麼實現的呢?

        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多的屬性,比如nextprevious,chaptersection等等。我要使用的就是rel="externa l"屬性。原來這樣寫的代

<a href="document.html" target="_blank"> 一個新窗口</a> 在要寫成這樣
<a href="document.html" rel="external">一個 新窗口</a> 是符合strict準的方法。當然配合一個javascript纔有效。
javascript
完整的代JS如下:
function externallinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
  if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}
window.onload = externallinks;
你可以把它保存成一個.js文件(比如external.js),然後通外部接方法調用:
<script type="text/javascript" src="external.js"></script>
就是這樣
2   瀏覽器不支持
   有時,使用了上述標籤,但是,任舊不見效果,比如使用了target=_blank,卻不能彈出窗口,這是因爲,有些瀏覽器被用戶設置了,不讓彈出窗口,當然這樣設置是爲了屏蔽廣告,因此,這是就無法打開新窗口,知道了原因,解決就很簡單了,在瀏覽器中設置一下就可以了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章