作者相關: 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>
現在可以看到效果了。