<html> 
<head> 
<title> </title> 
</head> 
<body> 
<!--将以下代码加到 <body>中//--> 
<script language="JavaScript"> 
var NS4;   
var IE4; 
if(document.all){IE4=true;NS4=false;}
else{IE4=false;NS4=true;}
// window to search.
var win = window; 
var n   = 0; 
function findInPage(str) { 
var txt, i, found; 
if (str == "") return false; 
if (NS4){
win.find(str, false, false, true)
while(win.find(str, false, false, true)) n++;
        if (n == 0) alert("抱谦!我找不到你要的内容."); 
    }
    if (IE4) { 
        txt = win.document.body.createTextRange(); 
        for (i = 0; i  <= n && (found = txt.findText(str)) != false; i++) { 
            txt.moveStart("character", 1); 
            txt.moveEnd("textedit"); 
        }
        if (found) { 
           txt.moveStart("character", -1); 
           txt.findText(str); 
           txt.select(); 
           txt.scrollIntoView(); 
           n++; 
        }
        else { 
           if (n > 0) { 
              n = 0; 
              findInPage(str); 
           } 
           else alert("抱谦!我找不到你要的内容."); 
        }
  }
  return false; 
}</script> 
<form name="search" onSubmit="return findInPage(this.string.value);"> 
<input name="string" type="text" size=20 onChange="n = 0;"> 
<input type="submit" value="给我搜">  
</form> 试试搜这几个字 hi! how are you! </body> 
</html>

解决方案 »

  1.   

    hookee,历害啊.
    不过有一个问题,现在只能搜索最后一个字符.假如字符现在有以下这些,在firefox下你输入一个"h",只能搜索一个了出来,事实上有好多个的.试试搜这几个字 hi! how are you! 
    试试搜这几个字 hi! how are you! 
      

  2.   


    <html> 
    <head> 
    <title> </title> 
    </head> 
    <body> 
    <!--将以下代码加到 <body>中//--> 
    <script language="JavaScript"> 
    var NS4;   
    var IE4; 
    if(document.all){IE4=true;NS4=false;}
    else{IE4=false;NS4=true;}
    // window to search.
    var win = window; 
    var n   = 0; 
    function findInPage(str) { 
        var txt, i, found; 
        if (str == "") return false; 
        if (NS4){
            var t = win.find(str, false, true, true);
            if (!t) alert("抱谦!我找不到你要的内容."); 
        }
        if (IE4) { 
            txt = win.document.body.createTextRange(); 
            for (i = 0; i  <= n && (found = txt.findText(str)) != false; i++) { 
                txt.moveStart("character", 1); 
                txt.moveEnd("textedit"); 
            }
            if (found) { 
               txt.moveStart("character", -1); 
               txt.findText(str); 
               txt.select(); 
               txt.scrollIntoView(); 
               n++; 
            }
            else { 
               if (n > 0) { 
                  n = 0; 
                  findInPage(str); 
               } 
               else alert("抱谦!我找不到你要的内容."); 
            }
      }
      return false; 
    }</script> 
    <form name="search" onSubmit="return findInPage(this.string.value);"> 
    <input name="string" type="text" size=20 onChange="n = 0;"> 
    <input type="submit" value="给我搜">  
    </form> 试试搜这几个字 hi! how are you! </body> 
    </html>
      

  3.   

    hookee:谢谢您,
    现在是可以执行,不过好奇怪啊,在IE下是按顺序(从上到下/从左到右)查找,但在FF下是按从最后搜索到上面来的.从最右边搜索到左边.
    这是什么原因的?