//==============================================
//function : fnSearch()
//comment  : set the flag to the next textrange
//param    : none
//return   : none
//author   : Fantiny
//Date     : 10/21/2005
//==============================================
function fnNext(){ if (intCount > 0 && intCount < intTotalCount){
intCount = intCount + 1;
}
else{
intCount = 1 ;
}
}

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    var oRange; // save the current textrange
    var intCount = 0; // this pos of current textrange in the total count
    var intTotalCount = 0; // total count
    <!--
    //==============================================
    //function : fnSearch()
    //comment  : Search the text
    //param    : none
    //return   : none
    //author   : Fantiny
    //Date     : 10/21/2005
    //==============================================
    function fnSearch() { var strBeReplaced;
    var strReplace; fnNext(); oRange = document.body.createTextRange(); //Create a textRange for the Textarea
    strBeReplaced = "will be"; // Find the text by findtext method
    for (i=1; oRange.findText(strBeReplaced)!=false; i++) {
    if(i == intCount){
    oRange.select(); // select the finded text
    oRange.scrollIntoView(); // scroll the page and set the text Into View 
    break;
    }
    oRange.collapse(false); //
    }
    }//==============================================
    //function : init()
    //comment  : initialize at page onload to get the count
    //param    : none
    //return   : none
    //author   : Fantiny
    //Date     : 10/21/2005
    //==============================================
    function init(){ var oRange ;
    var strBeRepalced; oRange = document.body.createTextRange(); //Create a textRange for the Textarea
    strBeReplaced = "will be"; for (i=0; oRange.findText(strBeReplaced)!=false; i++) {
         oRange.collapse(false); // Moves the insertion point to the end of the text range.
    } intTotalCount = i ;}//==============================================
    //function : fnReplace()
    //comment  : replace the text of the selected textrange
    //param    : none
    //return   : none
    //author   : Fantiny
    //Date     : 10/21/2005
    //==============================================
    function fnReplace(){ var strReplace;

    strReplace = "has been"; // if the textrange is exist, replace the text
    if(oRange!= null && typeof(oRange)=="object" && intTotalCount > 0){
    oRange.text = strReplace;
    intCount = intCount - 1;
    intTotalCount = intTotalCount - 1;
    oRange = null;
    }
    }
    //==============================================
    //function : fnSearch()
    //comment  : set the flag to the next textrange
    //param    : none
    //return   : none
    //author   : Fantiny
    //Date     : 10/21/2005
    //==============================================
    function fnNext(){ if (intCount > 0 && intCount < intTotalCount){
    intCount = intCount + 1;
    }
    else{
    intCount = 1 ;
    }
    }
    //-->
    </SCRIPT>
    </HEAD>
    <BODY onload="init()">
    this is the original text, and this is the string will be repalced.
    this is the original text, and this is the string will be repalced.
    this is the original text, and this is the string will be repalced.
    this is the original text, and this is the string will be repalced.
    this is the original text, and this is the string will be repalced.
    this is the original text, and this is the string will be repalced.
    <input type="button" value="search" onclick="fnSearch()">
    <input type="button" value="Replace" onclick="fnReplace()">
    <input type="button" value="count" onclick="alert(intTotalCount)">
    </BODY>
    </HTML>
      

  2.   

    谢谢啊,老兄,oRange还有没有方法可以通过前后位置来进行选定呢,比如fingPosition之类的因为我现在知道的是页面区域的前后位置。
      

  3.   

    <script type="text/javascript">
    //<![CDATA[
      function foo() {
        var rng = document.body.createTextRange();
        rng.findText('blog.never-online.net',10000,0);
        rng.select();
        rng.scrollIntoView(true);
        rng.moveStart("character");
        alert('left: ' +rng.boundingLeft);
        alert('top: ' +rng.boundingTop);
        alert('width: ' +rng.boundingWidth);
        alert('height: ' +rng.boundingHeight);
      }
    //]]>
    </script>
    <button onclick="foo()">see</button>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p><p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p>
    <p>never-online.net</p><p>blog.never-online.net</p>
      

  4.   

    是啊,发了两贴,这种方法还是先知道要find的text后才可以,可现在我只知道html代码中开始和结束的位置,能否选定中间的区域呢?
      

  5.   

    或者说我只知道html代码中一部分html代码,并不是纯文本形式,我想在页面中选定这块代码区域怎么做呢?