用javascript 转换外部链接样式

王朝html/css/js·作者佚名  2008-05-31
宽屏版  字体: |||超大  

作者相关: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>

现在可以看到效果了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有