深蓝之网络

探讨网站建设,主机,域名,VPS,服务器

« GODADDY VDS/VPS 使用经验与问题一用jquery实现跨域获取HTML »

javascript给网页上的文字自动加上链接

给网页上带URL格式的文字自动加上<a href="XXX">的链接。
思路是先对整个DOCUMENT过一遍,跳过MATE,JS,CSS等上的字符串,用正则表达式对匹配URL文字,然后替换掉空格回车等字符,加上超级链接的标签。URL地址自动添加的实现的关键点就是检测与替换。

代码如下:

JavaScript Code
  1. <script type="text/javascript">   
  2. //自动加链接   
  3. //<![CDATA[    
  4.  var reg=/(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g;   
  5.  var reg2=/^\s+(.*?)\s+$/gi;   
  6.   onload=function(){var o_=document;fDomAtcLink(o_.body, o_);}   
  7.   function fDomAtcLink(obj, dcu){    
  8.    var temp, str='', span;    
  9.   for(var i=0, j=obj.childNodes.length; i<j; i++){    
  10.    temp=obj.childNodes[i];    
  11.    if(temp.nodeType==3){    
  12.     if(temp.parentNode.nodeName=='A')   
  13.      return false;    
  14.     if(temp.data.indexOf('http')<0&&temp.data.indexOf('ftp')<0&& temp.data.indexOf('@')<0)   
  15.      continue;    
  16.     span=dcu.createElement('span');    
  17.     str=temp.data.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');   
  18.     str=str.replace(reg,function(match){    
  19.      return '<a href="'+ match +'" class="sqUrl">'+ match +'</a>'; } );     
  20.     str=str.replace(reg2,function(match){    
  21.      return '<a href="mailto:'+match+'" class="sqMail">'+match+'</a>'; } );     
  22.     span.innerHTML=str; obj.replaceChild(span, temp);   
  23.     }     
  24.     if(temp.nodeType==1)   
  25.      arguments.callee(obj.childNodes[i], dcu);   
  26.    }    
  27.         
  28.   temp=span=null;   
  29.   }    
  30.  //]]>                                                                                
  31. </script>   


 


除非注明,文章均为深蓝网络原创,欢迎转载!转载请注明出处,谢谢。
本文地址:http://www.dieep.com/Category/ui/3.html

 

相关文章:

    最新评论:

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    日历

    最新评论及回复

    最近发表

    Copyright www.dieep.com. All Rights Reserved.

    Powered By Z-Blog 1.8 Walle Build 100427