作者相關:http://www.lemongtree.com
用css屬性選擇器可以有選擇性地對鏈接樣式進行控制,如讓所有的外部鏈接都加一個小圖標來標識其是一外部鏈接。
但用css有弊端:
1、只支持FireFox等對web標准支持很好的浏覽器。
2、只能判斷鏈接,不能判斷錨點或javascript。如遇到<a href="javascript:void(0);">就無能為力了。
這裡可以結合js來完成,首先寫一個樣式:
a.other:link,a.other:visited,a.other:active
{
background:url("external.gif") no-repeat top right;
padding-right:15px;
}
再寫一個js,但js要考慮到鏈接的多樣性,如上面提到的javascript、錨點等。 如果是圖片鏈接,就不要應用樣式了。
<script type="text/javascript">
window.onload = function()
{
var aList = document.getElementsByTagName('a');
var iCount = aList.length;
for(var i = 0;i<iCount;i++)
{
if(!chkMyLink(aList[i].href,aList[i].innerHTML))
{
aList[i].className ='other';
}
}
}
//s是鏈接的url,innerhtml是鏈接文本
function chkMyLink(s,innerhtml)
{
if(innerhtml.replace( /^\s*/,"").match(/^\<img/gi)) return true;
var reg = /^http\:\/\//gi;
if(s.match(reg))
{
reg = /^http\:\/\/www.lemongtree.com/gi;
if(s.match(reg))
{
return true;
}
else
{
return false;
}
}
return true;
}
</script>
現在可以看到效果了。