用户操作
[即时聊天] [发私信] [加为好友]
wei kongID:kongwei521
4317次访问,排名19699(1)好友16人,关注者80
往前走 往前看 往后想!!我心之苦谁人晓!大悲大喜且无泪,大彻大悟且无言,大笑无声心中苦~~~
kongwei521的文章
原创 1 篇
翻译 0 篇
转载 21 篇
评论 8 篇
最近评论
yindysoft:值得了解
kongwei521:哈哈不是我写的。是从博客园转载过来的。下面有转载地址
armstrong1225:太强了 我要试一下
rainbowxh:==ps!
wchhuangya:强啊~真是太强了
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 使用 javascript 标记高亮关键词 收藏

    新一篇: 一个web应用程序统计在线用户列表的东东(带c#源码)  | 旧一篇: 作.Net的一般基础不太好,看看下面几篇文章补补吧

      /*----------------------------------------*\ 
         * 使用 js 标记高亮关键词 by markcxz(markcxz@aol.com)
         * 参数说明: 
         * obj: 对象, 要进行高亮显示的html标签节点. 
         * hlWords: 字符串, 要进行高亮的关键词词, 使用 竖杠(|)或空格 分隔多个词 . 
         * cssClass: 字符串, 定义关键词突出显示风格的css伪类. 
         * 参考资料: javascript HTML DOM 高亮显示页面特定字词 By shawl.qiu
        \*----------------------------------------
    */ 
        
    function MarkHighLight(obj,hlWords,cssClass){
        
            hlWords
    =AnalyzeHighLightWords(hlWords);
            
            
    if(obj==null || hlWords.length==0)
                
    return;
            
    if(cssClass==null)
                cssClass
    ="highlight";
            MarkHighLightCore(obj,hlWords);
            
            
    //------------执行高亮标记的核心方法----------------------------
            function MarkHighLightCore(obj,keyWords){
                
    var re=new RegExp(keyWords, "i"); 
                
                
    for(var i=0; i<obj.childNodes.length; i++){
                
                    
    var childObj=obj.childNodes[i];
                    
    if(childObj.nodeType==3){
                        
    if(childObj.data.search(re)==-1)continue
                        
    var reResult=new RegExp("("+keyWords+")""gi"); 
                        
    var objResult=document.createElement("span");
                        objResult.innerHTML
    =childObj.data.replace(reResult,"<span class='"+cssClass+"'>$1</span>");                     
                        
    if(childObj.data==objResult.childNodes[0].innerHTML) continue
                        obj.replaceChild(objResult,childObj);                                      
                    }
    else if(childObj.nodeType==1){
                        MarkHighLightCore(childObj,keyWords);
                    }
                }
            }        

            
    //----------分析关键词----------------------
            function AnalyzeHighLightWords(hlWords)
            {
                
    if(hlWords==nullreturn "";
                hlWords
    =hlWords.replace(/\s+/g,"|").replace(/\|+/g,"|");            
                hlWords
    =hlWords.replace(/(^\|*)|(\|*$)/g, "");
                
                
    if(hlWords.length==0return "";
                
    var wordsArr=hlWords.split("|"); 
                
                
    if(wordsArr.length>1){
                    
    var resultArr=BubbleSort(wordsArr);
                    
    var result="";
                    
    for(var i=0;i<resultArr.length;i++){
                        result
    =result+"|"+resultArr[i];
                    }                
                    
    return result.replace(/(^\|*)|(\|*$)/g, "");

                }
    else{
                    
    return hlWords;
                } 
            }    
            
            
    //-----利用冒泡排序法把长的关键词放前面-----    
            function BubbleSort(arr){        
                
    var temp, exchange;    
                
    for(var i=0;i<arr.length;i++){            
                    exchange
    =false;                
                    
    for(var j=arr.length-2;j>=i;j--){                
                        
    if((arr[j+1].length)>(arr[j]).length){                    
                            temp
    =arr[j+1]; arr[j+1]=arr[j]; arr[j]=temp;
                            exchange
    =true;
                        }
                    }                
                    
    if(!exchange)break;
                }
                
    return arr;            
            }
        
        }
        
    //----------------end------------------------

    在线演示
     

    发表于 @ 2008年03月03日 13:51:00|评论(loading...)|编辑

    新一篇: 一个web应用程序统计在线用户列表的东东(带c#源码)  | 旧一篇: 作.Net的一般基础不太好,看看下面几篇文章补补吧

    评论

    #xierfly 发表于2008-06-27 22:11:53  IP: 221.221.156.*
    首先你的方法不错,但是我发现了一个问题,那就是,如果我用“不见”搜索,可以高亮显示,但是如果我清空“不见”,换成“第‘,那么,此时高亮显示的是 “不见” 和 “第”
    觉得这个应该修改一下。o(∩_∩)o...
    也喜欢修改后,能给我共享一份。o(∩_∩)o...
    w-x1966@163.com
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © kongwei521