• 站点地图
  • 加入收藏
  • 设为首页
  • 中国网管、站长学习园地hspace="5"
    当前位置:IT加速度>>网页设计>>Javascript>>内容阅读
    实现textarea内字符串选择查询替换功能
    作者:  来源:  时间:2008-07-29
      导读:

    ----------自动替换版----------


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    var staus ;
    var oRange;
    var objTimer;
    var objTimer1;
    var objTimer2;
    var sBookMark;
    <!--
    function selectall(objAll,OBJSingle){
    alert(objAll.checked);
    for (var i=0;i<OBJSingle.length;i++){
    if (objAll.checked){
    for( objs in OBJSingle){
    alert(objs.value);
    objs.checked=true;
    }
    }
    else{
    OBJSingle.checked=false;
    }
    }
    }

    function fnSearch() {
    fm1.txtarea1.focus();
    oRange = fm1.txtarea1.createTextRange();
    searchtxt(1);
    }

    function searchtxt(n){
    var v1;
    var v2;
    var txtr;
    var blnS;

    window.clearInterval(objTimer1);
    window.clearInterval(objTimer2);

    v1 = fm1.txtarea1.value;
    v2 = fm1.txtarea2.value;
    v3 = fm1.txtarea3.value;

    if( n == 1) {
    if (oRange != null) {
    oRange.findText(v2);
    if  (oRange.findText(v2) == true){
    //sBookMark = oRange.getBookmark();
    oRange.select();
    oRange.scrollIntoView();
    objTimer2 = window.setInterval("searchtxt(2)",1000);
    }
    else{
    objTimer = window.setInterval("searchtxt(3)",1000);
    }
    }
    staus = 2 ;
    }
    else if(n==2)  {
    oRange.text = v3;
    staus = 1;
    objTimer1 = window.setInterval("searchtxt(1)",1000);
    }
    else if(n==3) {
    staus = 3 ;
    window.clearInterval(objTimer);
    window.clearInterval(objTimer1);
    window.clearInterval(objTimer2);
    }
    }
    //-->
    </SCRIPT>
    </HEAD>
    <BODY>
    <FORM METHOD=POST name="fm1">
    <TEXTAREA NAME="txtarea1" ROWS="20" COLS="50">
    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.
    </TEXTAREA>
    <TEXTAREA NAME="txtarea2" ROWS="20" COLS="50"> will be </TEXTAREA>
    <TEXTAREA NAME="txtarea3" ROWS="20" COLS="50"> has been </TEXTAREA>
    <input type="button" value="search" onclick="fnSearch()">
    </FORM>

    </BODY>
    </HTML>

    --------------------------------手动改进版----------------------------------------

    <!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;

     strBeReplaced = fm1.txtarea2.value;
     strReplace = fm1.txtarea3.value;

     fnNext();

     fm1.txtarea1.focus();
     oRange = fm1.txtarea1.createTextRange(); //Create a textRange for the Textarea

     
     // 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 : 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 ;
     }
    }

    //==============================================
    //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 = fm1.txtarea1.createTextRange();  //Create a textRange for the Textarea
     strBeReplaced = fm1.txtarea2.value;   

     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 www.knowsky.com
    //author   : Fantiny
    //Date     : 10/21/2005
    //==============================================
    function fnReplace(){

     var strReplace;
     
     strReplace = fm1.txtarea3.value;

     // 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;
     }
    }
    //-->
    </SCRIPT>
    </HEAD>
    <BODY onload="init()">
    <FORM METHOD=POST name="fm1">
    <TEXTAREA NAME="txtarea1" ROWS="20" COLS="50">
    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.
    </TEXTAREA>
    <TEXTAREA NAME="txtarea2" ROWS="20" COLS="50"> will be </TEXTAREA>
    <TEXTAREA NAME="txtarea3" ROWS="20" COLS="50"> has been </TEXTAREA>
    <input type="button" value="search" onclick="fnSearch()">
    <input type="button" value="Replace" onclick="fnReplace()">
    </FORM>

    </BODY>
    </HTML>

    责任编辑:it415.com

    上一篇:JavaScript Web页面内容导出到Word、Excel
    下一篇:JavaScript模拟ACDSEE简单功能
    相关内容