给网页上带URL格式的文字自动加上<a href="XXX">的链接。
思路是先对整个DOCUMENT过一遍,跳过MATE,JS,CSS等上的字符串,用正则表达式对匹配URL文字,然后替换掉空格回车等字符,加上超级链接的标签。URL地址自动添加的实现的关键点就是检测与替换。
代码如下:
JavaScript Code
- <script type="text/javascript">
- //自动加链接
- //<![CDATA[
- var reg=/(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g;
- var reg2=/^\s+(.*?)\s+$/gi;
- onload=function(){var o_=document;fDomAtcLink(o_.body, o_);}
- function fDomAtcLink(obj, dcu){
- var temp, str='', span;
- for(var i=0, j=obj.childNodes.length; i<j; i++){
- temp=obj.childNodes[i];
- if(temp.nodeType==3){
- if(temp.parentNode.nodeName=='A')
- return false;
- if(temp.data.indexOf('http')<0&&temp.data.indexOf('ftp')<0&& temp.data.indexOf('@')<0)
- continue;
- span=dcu.createElement('span');
- str=temp.data.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
- str=str.replace(reg,function(match){
- return '<a href="'+ match +'" class="sqUrl">'+ match +'</a>'; } );
- str=str.replace(reg2,function(match){
- return '<a href="mailto:'+match+'" class="sqMail">'+match+'</a>'; } );
- span.innerHTML=str; obj.replaceChild(span, temp);
- }
- if(temp.nodeType==1)
- arguments.callee(obj.childNodes[i], dcu);
- }
- temp=span=null;
- }
- //]]>
- </script>
除非注明,文章均为深蓝网络原创,欢迎转载!转载请注明出处,谢谢。
本文地址:http://www.dieep.com/Category/ui/3.html
最新评论: