用javascript 转换外部链接样式

用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.href,aList.innerHTML))
                 {
                   aList.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>
    现在可以看到效果了。

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [javascript] 的这些文章也感兴趣:

不被浏览器拦截的弹出窗口JS代码
JavaScript函数库的未来
java是什么东东?
Gb2312转utf-8(vbs js)
改变样式表的js语句
Javascript实例教程(20) OLE Automation(5)
在线编辑器集锦
总结showModalDialog和showModelessDialog用法
仿腾迅留言效果(拖动分页)
JS中的eval和document.getElementById