只搜索 input 里的文本,或从光标处以"上"开始搜索,怎么改,谢谢

解决方案 »

  1.   

    把要搜索的input放到一个iframe里就可以实现
    不用改代码
      

  2.   

    但我确实要用div,没法用iframe
    多谢!
      

  3.   

    IE下简单些,FF下是要稍微复杂些!
      

  4.   

    <div contentEditable="true"  id="input" onclick="getValue(this)">abcdefghilj</div>
    <script type="text/javascript">
     function getPosition(obj){
      var result = 0;
      if(obj.selectionStart){ //非IE浏览器
       result = obj.selectionStart
      }else{ //IE
       var rng= document.selection.createRange();
       rng.moveStart("character",-obj.innerHTML.length);
       result = rng.text.length;
      }
      return result;
     }
     
     function getValue(obj){
         var pos = getPosition(obj);
     var str=obj.innerHTML.substr(pos-1,obj.innerHTML.length);
     alert(pos)//这里就是光标后面的字符串
     }
    </script>随手写一个,不知道对还是不对,自己测试下
      

  5.   

    谢谢,你理解错了,我不是想要光标后面的那个字符上段代码是页面搜索代码,我想让他只搜索 input 里的文本,且从光标处以下开始搜索
      

  6.   

    汗!你得到了光标后面的数字,然后进行搜索还不简单吗?
    你这个难点是怎么得到光标后面的数据,搜索那个还不简单吗?
    indexof不就可以搜索比较了吗?
      

  7.   


    <textarea name="txtBox" rows="7" cols="50" id="txtBox" onclick='GetCursorPsn(this)'>
    上段代码是页面搜索代码,我想让他只搜索 input 里的文本,且从光标处以下开始搜索,怎么改,谢谢。
    我觉得不如重新写...但我确实要用div,没法用iframe
    多谢!
    </textarea><br><!--input type="text" value="输入要查询的内容" id="txtFind"-->
    <input type="text" value="我" id="txtFind"><input type="button" value="查找下一个" onclick="findText(txtFind.value)"><script language="javascript">
    var num = 0;//定义一个全局变量,作为moveStart()函数的偏移量
    var blnStart=false;//从光标位置开始标志
    var rng = txtBox.createTextRange();function findText(str){
      if(str==""){return;}  if(document.selection){ 
        if(!blnStart){num = document.selection.createRange().text.length;}//!!!这个是关键
        rng.moveStart("character",num);//开始点
        rng.moveEnd("character",txtBox.value.length);//结束点都为文尾
       blnStart=false;
        if(rng.findText(str)){rng.select();}
      
        if(rng.text!=str){  
           alert("搜索完毕");
          rng = txtBox.createTextRange();
        }
      }
    }  function GetCursorPsn(o){ 
    //当鼠标点击时,认为从这里开始;找光标位置并更改开始位置标志
        blnStart=true;
        var slct = document.selection; 
        var rng = slct.createRange(); 
        o.select(); 
        rng.setEndPoint("StartToStart", slct.createRange()); 
        num = rng.text.length; 
        rng.collapse(false); 
        rng.select(); 
    //alert(num )
        return num ; 
    }  
    </script> IE环境~!