制作符合Web標(biāo)準(zhǔn)的超鏈接_XHTML教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
在HTML 4.0 Strict和XHTML 1.0 STRICT里不答應(yīng)在<a>標(biāo)簽里使用target屬性,這是一件令網(wǎng)頁(yè)設(shè)計(jì)者懊惱的事.在過(guò)渡的規(guī)范里還是答應(yīng)使用的.但通過(guò)一定的方法,我們可以解決這一問(wèn)題.
HTMl4.0規(guī)范里拿掉了target屬性.但它添加了另外一個(gè)屬性:rel.這個(gè)屬性是用來(lái)指定包含鏈接的文檔和所鏈接文檔之間的關(guān)系的.規(guī)范里定義了其屬性值(如:next,previous,chapter,section),在這些屬性里大多數(shù)是用來(lái)定義一個(gè)大文檔里各個(gè)小部分之間的關(guān)系的.事實(shí)上.規(guī)范里答應(yīng)開(kāi)發(fā)人員自由的使用非標(biāo)準(zhǔn)屬性值做特定的運(yùn)用.
在這里,我們采用一個(gè)自定義值external用于rel屬性來(lái)標(biāo)記一個(gè)鏈接,用來(lái)新開(kāi)一個(gè)窗口.
現(xiàn)在我們構(gòu)建了一個(gè)符合Web標(biāo)準(zhǔn)的新開(kāi)窗口的鏈接,我們還需要運(yùn)用JavaScript是其實(shí)現(xiàn)新開(kāi)窗口.腳本要實(shí)現(xiàn)的工作是當(dāng)網(wǎng)頁(yè)加載時(shí),找到文檔里的所有那些我們定義為rel="external"的超鏈接.
首先我們要判定瀏覽器.
if (!document.getElementsByTagName) return;
getElementsByTagName是DOM1標(biāo)準(zhǔn)里一個(gè)輕易使用的方法,且它被現(xiàn)在的大多數(shù)瀏覽器所支持,因?yàn)橐恍┡f的瀏覽器如Netscape 4和IE4不支持DOM1,所以我們必須通過(guò)判定這一方法是否存在來(lái)排除這些舊版本的瀏覽器.
下一步,我們通過(guò)getElementsByTagName方法取得文檔里所有的<a>標(biāo)簽:
var anchors = document.getElementsByTagName("a");
anchors被賦值為包含各個(gè)<a>標(biāo)簽的數(shù)組,現(xiàn)在我們必須遍歷各個(gè)<a>標(biāo)簽并且修改它:
for (var i=0; i < anchors.length; i ) {
var anchor = anchors;
找到要實(shí)現(xiàn)新開(kāi)窗口的<a>標(biāo)簽
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
接下來(lái).建立屬性值target并賦值"_target":
anchor.target = "_blank";
完整的代碼:
HTMl4.0規(guī)范里拿掉了target屬性.但它添加了另外一個(gè)屬性:rel.這個(gè)屬性是用來(lái)指定包含鏈接的文檔和所鏈接文檔之間的關(guān)系的.規(guī)范里定義了其屬性值(如:next,previous,chapter,section),在這些屬性里大多數(shù)是用來(lái)定義一個(gè)大文檔里各個(gè)小部分之間的關(guān)系的.事實(shí)上.規(guī)范里答應(yīng)開(kāi)發(fā)人員自由的使用非標(biāo)準(zhǔn)屬性值做特定的運(yùn)用.
在這里,我們采用一個(gè)自定義值external用于rel屬性來(lái)標(biāo)記一個(gè)鏈接,用來(lái)新開(kāi)一個(gè)窗口.
示例代碼 [www.hl5o.cn]
不符合最新Web標(biāo)準(zhǔn)的鏈接代碼:
<a href="document.html" target="_blank">external link</a>
運(yùn)用rel屬性:
<a href="document.html" rel="external">external link</a>
<a href="document.html" target="_blank">external link</a>
運(yùn)用rel屬性:
<a href="document.html" rel="external">external link</a>
現(xiàn)在我們構(gòu)建了一個(gè)符合Web標(biāo)準(zhǔn)的新開(kāi)窗口的鏈接,我們還需要運(yùn)用JavaScript是其實(shí)現(xiàn)新開(kāi)窗口.腳本要實(shí)現(xiàn)的工作是當(dāng)網(wǎng)頁(yè)加載時(shí),找到文檔里的所有那些我們定義為rel="external"的超鏈接.
首先我們要判定瀏覽器.
if (!document.getElementsByTagName) return;
getElementsByTagName是DOM1標(biāo)準(zhǔn)里一個(gè)輕易使用的方法,且它被現(xiàn)在的大多數(shù)瀏覽器所支持,因?yàn)橐恍┡f的瀏覽器如Netscape 4和IE4不支持DOM1,所以我們必須通過(guò)判定這一方法是否存在來(lái)排除這些舊版本的瀏覽器.
下一步,我們通過(guò)getElementsByTagName方法取得文檔里所有的<a>標(biāo)簽:
var anchors = document.getElementsByTagName("a");
anchors被賦值為包含各個(gè)<a>標(biāo)簽的數(shù)組,現(xiàn)在我們必須遍歷各個(gè)<a>標(biāo)簽并且修改它:
for (var i=0; i < anchors.length; i ) {
var anchor = anchors;
找到要實(shí)現(xiàn)新開(kāi)窗口的<a>標(biāo)簽
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
接下來(lái).建立屬性值target并賦值"_target":
anchor.target = "_blank";
完整的代碼:
示例代碼 [www.hl5o.cn]
function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i ) {
var anchor = anchors;
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externalLinks;
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i ) {
var anchor = anchors;
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externalLinks;
相關(guān)XHTML教程:
- HTML5 INPUT placeholder及兼容性處理
- HTML表單里的Label標(biāo)簽
- 淺析HTML與javascript中常用編碼
- CSS網(wǎng)頁(yè)布局中必須要了解的幾個(gè)XHTML標(biāo)簽
- title和alt 標(biāo)簽介紹及其異同
- 淺析HTML標(biāo)簽strong和em的區(qū)別
- 說(shuō)說(shuō)XHTML中的alt屬性和title屬性
- Semantics語(yǔ)義是Html Xhtml是否真正符合標(biāo)準(zhǔn)的重要部分
- 九個(gè)W3C XHTML1.0及CSS標(biāo)準(zhǔn)認(rèn)證需要注意的問(wèn)題
- 請(qǐng)注意頁(yè)面head區(qū)域的編碼是不是規(guī)范
- HTML validate - 驗(yàn)證HTML代碼穿越多重瀏覽器標(biāo)準(zhǔn)
- XHTML具有語(yǔ)義的標(biāo)簽:有關(guān)H1位置的討論
XHTML教程Rss訂閱Div+Css教程搜索
XHTML教程推薦
- Semantics語(yǔ)義是Html Xhtml是否真正符合標(biāo)準(zhǔn)的重要部分
- HTML5語(yǔ)言:Apple Opera Mozilla將支持
- 關(guān)于超鏈接的一些問(wèn)題
- 網(wǎng)頁(yè)制作解惑:圖象文件的路徑
- HTML5的結(jié)構(gòu)和語(yǔ)義——結(jié)構(gòu)(二)
- 容易讓人迷惑的alt和title
- HTML文本高級(jí)教程
- 超鏈接打開(kāi)目標(biāo)(target)的測(cè)試
- XHTML DHTML SHTML到底是什么,有何區(qū)別?
- CSS網(wǎng)頁(yè)布局中HTML標(biāo)簽的語(yǔ)義(二)
猜你也喜歡看這些
- 我們需要對(duì)CSS進(jìn)行縮寫(xiě)的原因
- CSS讓網(wǎng)頁(yè)里的提交按鈕變得更漂亮
- !important全面解析
- HTML默認(rèn)樣式表CSS屬性匯總
- WEB標(biāo)準(zhǔn)學(xué)習(xí),認(rèn)識(shí)兩種網(wǎng)頁(yè)聲明的含義
- CSS去除表格的默認(rèn)間距并且制作1px的細(xì)線表
- IE6因?yàn)榫幋a問(wèn)題無(wú)法正確解析CSS文件
- 如何應(yīng)用CSS控制網(wǎng)頁(yè)背景?
- 深入理解CSS的display:inline-block屬性
- CSS解決文字環(huán)繞圖片問(wèn)題
- 相關(guān)鏈接:
- 教程說(shuō)明:
XHTML教程-制作符合Web標(biāo)準(zhǔn)的超鏈接
。