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

首頁 > 編程 > HTML > 正文

符合Web標準的超鏈接

2024-08-26 00:21:48
字體:
來源:轉載
供稿:網友
在HTML 4.0 Strict和XHTML 1.0 STRICT里不允許在<a>標簽里使用target屬性,這是一件令網頁設計者懊惱的事.在過渡的規范里還是允許使用的.但通過一定的方法,我們可以解決這一問題.
  
  HTMl4.0規范里拿掉了target屬性.但它添加了另外一個屬性:rel.這個屬性是用來指定包含鏈接的文檔和所鏈接文檔之間的關系的.規范里定義了其屬性值(如:next,previous,chapter,section),在這些屬性里大多數是用來定義一個大文檔里各個小部分之間的關系的.事實上.規范里允許開發人員自由的使用非標準屬性值做特定的運用.
  
  在這里,我們采用一個自定義值external用于rel屬性來標記一個鏈接,用來新開一個窗口.
  
  不符合最新Web標準的鏈接代碼:
  <a href="document.html" target="_blank">external link</a>
  
  運用rel屬性:
  <a href="document.html" rel="external">external link</a>
  
  現在我們構建了一個符合Web標準的新開窗口的鏈接,我們還需要運用JavaScript是其實現新開窗口.腳本要實現的工作是當網頁加載時,找到文檔里的所有那些我們定義為rel="external"的超鏈接.
  
  首先我們要判斷瀏覽器.
  if (!document.getElementsByTagName) return;
  
  getElementsByTagName是DOM1標準里一個容易使用的方法,且它被現在的大多數瀏覽器所支持,因為一些舊的瀏覽器如Netscape 4和IE4不支持DOM1,所以我們必須通過判定這一方法是否存在來排除這些舊版本的瀏覽器.
  
  下一步,我們通過getElementsByTagName方法取得文檔里所有的<a>標簽:
  var anchors = document.getElementsByTagName("a");
  
  anchors被賦值為包含各個<a>標簽的數組,現在我們必須遍歷各個<a>標簽并且修改它:
  for (var i=0; i < anchors.length; i++) {
  var anchor = anchors;
  找到要實現新開窗口的<a>標簽
  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;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汾阳市| 和静县| 灵武市| 静乐县| 镇安县| 塘沽区| 阜平县| 达尔| 河南省| 称多县| 武清区| 泽库县| 淳化县| 洪湖市| 濉溪县| 车致| 东兰县| 修武县| 新沂市| 南郑县| 云南省| 五河县| 和平县| 怀柔区| 巴彦县| 景德镇市| 桦甸市| 河源市| 荆门市| 潼关县| 南澳县| 罗源县| 六安市| 禹城市| 杭州市| 色达县| 枣强县| 许昌县| 洞口县| 平武县| 宜君县|