国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

WEB標(biāo)準(zhǔn):target 屬性怎么用 JS 來控制?

2024-04-27 13:53:12
字體:
供稿:網(wǎng)友

在HTML 4.0 Strict和XHTML 1.0 STRICT里不答應(yīng)在<a>標(biāo)簽里使用target屬性,這是一件令網(wǎng)頁設(shè)計者懊惱的事。在過渡的規(guī)范里還是答應(yīng)使用的。但通過一定的方法,我們可以解決這一問題。

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

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

不符合最新Web標(biāo)準(zhǔn)的鏈接代碼:

<a href="document.html" target="_blank">external link</a>

運用rel屬性:

<a href="document.html" rel="external">external link</a>

現(xiàn)在我們構(gòu)建了一個符合Web標(biāo)準(zhǔn)的新開窗口的鏈接,我們還需要運用JavaScript是其實現(xiàn)新開窗口。腳本要實現(xiàn)的工作是當(dāng)網(wǎng)頁加載時,找到文檔里的所有那些我們定義為rel="external"的超鏈接。

首先我們要判定瀏覽器

if (!document.getElementsByTagName) return;

getElementsByTagName是DOM1標(biāo)準(zhǔn)里一個輕易使用的方法,且它被現(xiàn)在的大多數(shù)瀏覽器所支持,因為一些舊的瀏覽器如Netscape 4和IE4不支持DOM1,所以我們必須通過判定這一方法是否存在來排除這些舊版本的瀏覽器。

下一步,我們通過getElementsByTagName方法取得文檔里所有的<a>標(biāo)簽:

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

anchors被賦值為包含各個<a>標(biāo)簽的數(shù)組,現(xiàn)在我們必須遍歷各個<a>標(biāo)簽并且修改它:

for (var i=0; i < anchors.length; i ) {

var anchor = anchors;

找到要實現(xiàn)新開窗口的<a>標(biāo)簽

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

anchor.getAttribute("rel") == "external")

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

anchor.target = "_blank",

完整的代碼:

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;

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 鹤庆县| 靖安县| 富民县| 济宁市| 兴海县| 腾冲县| 沧州市| 通渭县| 崇义县| 寻乌县| 武陟县| 海原县| 吉木乃县| 南和县| 叙永县| 东阿县| 淳安县| 房产| 保山市| 收藏| 固始县| 泸西县| 循化| 获嘉县| 资中县| 邵阳县| 罗江县| 郑州市| 泰兴市| 孟州市| 珲春市| 和政县| 沅江市| 偏关县| 安多县| 阜宁县| 曲阜市| 南部县| 云南省| 聂拉木县| 宿松县|