einsy

传说中的湖

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

在做一个项目的时候,需要查找某些标点符号,在标点符号后插入一些标示。

如果文章很大的情况下,遍历应该采用模拟异步处理,不然可能会很卡。

代码如下;

var Spliter=function()
{
    var N=0;
    var Timers=100;
    var SP=this;
    SP.callback=function(){};
    
    var Spd_action_html="<v:rect style='width:10px;height:16px;left:0px;' class='Spd_action' version='1.0' o:SPT='70' coordsize = '21600,21600' filled = 't' stroked = 'f' fillcolor = 'red' strokecolor = 'black'  actionType='0' actionTime='0.5' splitType='auto'><v:fill opacity = '0.6'></v:fill></v:rect>";

    function AddSpliter(Range,n,A)
    {
         if(n==A.length){SP.callback(); return}
         if(Range.findText(A[n]))
         {
             N++;
             str=Range.text;
             var html="<span id='Judge_Spd_action'></span>";
             Range.pasteHTML(str+html);
             var Snode=$("Judge_Spd_action");
             var Next=Snode.nextSibling;
             var Flag=true;
             if(Next&&Next.nodeName=="rect"&&Next.className=="Spd_action")
             {
                 Snode.removeNode(true);  Flag=false;
             }
             if(Flag){Snode.outerHTML=Spd_action_html;}
             Range.collapse(true);
             if(N%Timers==0){ setTimeout(function(){AddSpliter(Range,n,A);},10);}
             else{AddSpliter(Range,n,A);}
         }
         else
         {
            var Range = document.body.createTextRange();
            setTimeout(function(){AddSpliter(Range,n+1,A);},0);
         }
    }
    this.SplitControl=function()
    {
        SpdEditor.eachName(function(node)
        {
           var Next=node.nextSibling;
           var Flag=true;
           if(Next&&Next.nodeName=="rect"&&Next.className=="Spd_action")
           {
               Flag=false;
           }
           if(Flag)
           { 
               node.insertAdjacentHTML("afterEnd",Spd_action_html);
           }
        },"IFRAME");
    }
    this.AddSpliter=function(Arr,obj)
    {
        var Range = document.body.createTextRange();
        AddSpliter(Range,0,Arr);
    }
    
}

Spliter=new Spliter();

 

 

posted on 2013-03-26 17:56  传说中的湖  阅读(221)  评论(0编辑  收藏  举报