電話

    0411-39943997

仟億科技
客服中心
  • 電話
  • 電話咨詢:0411-39943997
  • 手機
  • 手機咨詢:15840979770
    手機咨詢:13889672791
網絡營銷 >更多
您現在的位置:首頁 > 新聞中心 > 常見問題

網頁制作:target 屬性如何用 JS 來控制

作者:billionnet 發布于:2011/12/22 13:29:36 點擊量:

 

核心提示:在HTML 4.0 Strict和XHTML 1.0 STRICT里不允許在標簽里使用target屬性,這是一件令網頁設計者懊惱的事。在過渡的規范里還是允許使用的。但通過一定的方法,我們可以解決這一問題。

在HTML 4.0 Strict和XHTML 1.0 STRICT里不允許在標簽里使用target屬性,這是一件令網頁設計者懊惱的事。在過渡的規范里還是允許使用的。但通過一定的方法,我們可以解決這一問題。

HTMl4.0規范里拿掉了target屬性:但它添加了另外一個屬性:rel。這個屬性是用來指定包含鏈接的文檔和所鏈接文檔之間的關系的。規范里定義了其屬性值(如:next,previous,chapter,section)。在這些屬性里大多數是用來定義一個大文檔里各個小部分之間的關系的。事實上,規范里允許開發人員自由的使用非標準屬性值做特定的運用。

在這里,我們采用一個自定義值external用于rel屬性來標記一個鏈接,用來新開一個窗口。

不符合最新Web標準的鏈接代碼:

 

external link

 

運用rel屬性:

external link

現在我們構建了一個符合Web標準的新開窗口的鏈接,我們還需要運用JavaScript是其實現新開窗口。腳本要實現的工作是當網頁加載時,找到文檔里的所有那些我們定義為rel="external"的超鏈接。

 

首先我們要判斷瀏覽器

if (!document.getElementsByTagName) return;

getElementsByTagName是DOM1標準里一個容易使用的方法,且它被現在的大多數瀏覽器所支持,因為一些舊的瀏覽器如Netscape 4和IE4不支持DOM1,所以我們必須通過判定這一方法是否存在來排除這些舊版本的瀏覽器。 www.mscto.com

下一步,我們通過getElementsByTagName方法取得文檔里所有的標簽:

 

var anchors = document.getElementsByTagName("a");

anchors被賦值為包含各個標簽的數組,現在我們必須遍歷各個標簽并且修改它:

 

for (var i=0; i < anchors.length; i++) { 軟件開發網 www.mscto.com

var anchor = anchors;

 

找到要實現新開窗口的標簽

if (anchor.getAttribute("href") &&

 

anchor.getAttribute("rel") == "external") www.mscto.com

接下來,建立屬性值target并賦值"_target"

anchor.target = "_blank",

完整的代碼:

 

function externalLinks() {

 

if (!document.getElementsByTagName) return;

 

var anchors = document.getElementsByTagName("a");

for (var i=0; i

 

var anchor = anchors;

if (anchor.getAttribute("href") &&

anchor.getAttribute("rel") == "external") www.mscto.com

anchor.target = "_blank";

}

}

window.onload = externalLinks;



分享到:


Copyright@ 2011-2016 版權所有:大連千億科技有限公司 遼ICP備11013762-3號   google網站地圖   百度網站地圖   網站地圖

公司地址:大連市沙河口區中山路692號辰熙星海國際2317 客服電話:0411-39943997 QQ:2088827823 37482752

法律聲明:未經許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利! 隱私權政策聲明

www精品一区二区三区四区