如果需要在新視窗中開啟連結,我們使用的方法是在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>