如果需要在新窗口中打開鏈接,我們使用的方法是在a上加上taget=“_blank”,但很多人不知道這是不符合w3c的規范的,在使用嚴格的DOCTYPE(xhtml1-strict.dtd)校驗時,會提示“there is no attribute target for this element(in this HTML version)”的錯誤信息。
所以很多老外寫的東西基本上就不會出現taget=“_blank”。他們替換的方案是使用HTML4.0新增的標簽rel來表示,rel是用來表明鏈接和包含此鏈接頁面的關系,以及鏈接打開的目標。rel有許多的屬性值,比如next、previous,、chapter、section等等,還有我們用來拒絕搜索引擎蜘蛛向下爬行的nofollow(這一點很重要,在wordpress中,幾乎所有的評論中的用戶名的鏈接都是加了rel=nofollow的,所以想通過在博客中添加評論來增加外鏈都是徒勞的)。而我們現在要使用的就是rel=”external”屬性,用來表示鏈接將在新窗口中打開。當然,這只是符合strict標准的方法,而並沒有真正實現在新窗口開打鏈接,還需要javasscript的支持。
思路,在頁面載入以后,將rel含有external的a標簽,通過js加上target=”_blank“。下面提供jquery方法,代碼如下:
<script type="text/javascript"> jQuery(function($){ //external加上target="_blank" $("a[rel*=external]").attr("target","_blank"); }); </script>
以上只是jquery的實現方式,也是本博使用的方法,js原生方法如下:
<script type="text/javascript"> 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; </script>