为什么JS在chrome查找是倒序的?

剑峰 2015-06-22 10:09:01
这个JS页内查找,在IE是顺序查找,在chrome和火狐却是倒序,就是先查找最后一行,倒着的。
有没有办法在chrome和火狐也是顺序查找呢?
求大神支招


<html>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=gb_2312-80">
<TITLE>页内查找</TITLE>
<script language="JavaScript">
<!--
function doZoom(size){
document.getElementById('zoom').style.fontSize=size+'px'
}

var DOM = (document.getElementById) ? 1 : 0;
var NS4 = (document.layers) ? 1 : 0;
var IE4 = 0;
if (document.all)
{
IE4 = 1;
DOM = 0;
}
var win = window;
var n = 0;
function findIt() {
if (document.getElementById("searchstr").value != "")
findInPage(document.getElementById("searchstr").value);
}

function findInPage(str) {
var txt, i, found;
if (str == "")
return false;
if (DOM)
{
win.find(str, false, true);
return true;
}
if (NS4) {
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
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>
<BODY>
<br>
<div align="center">
<table width="90%" border="0" align="center" cellspacing="0" bgcolor="#EFF7FF" style='border:1px #8CA5B5 solid;' id="zoom">
<tr bgcolor="#DBEAF5">
<td height="50" style='border-bottom:1px #8CA5B5 solid;'>
<div align="center">
<table width="98%"><tr><td align="left">
<input type="text" id="searchstr" value="可以" name="searchstr" class="textbox" size="10">
<input type="button" value="页内查找" onclick="javascript:findIt();" class="sbttn">
<tr>
<td>
<br>
您可以使用此功能将其他用户共享出来的文件夹加入您收藏的共享文件夹列表(显示在上方的"我收藏的共享文件夹")中.<br>
<br>
<br>
您可以使用此功能将其他用户共享出来的文件夹加入您收藏的共享文件夹列表(显示在上方的"我收藏的共享文件夹")中.<br>
<br>
<br>
您可以使用此功能将其他用户共享出来的文件夹加入您收藏的共享文件夹列表(显示在上方的"我收藏的共享文件夹")中.<br>
<br>
</td>
</tr>
</table>
</div>
</BODY>
</html>
...全文
187 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2015-07-22
  • 打赏
  • 举报
回复
window.find()方法的第三个参数如果为true, 表示搜索方向为向上搜索. https://developer.mozilla.org/zh-CN/docs/Web/API/Window/find


<html>  
<META HTTP-EQUIV="Content-Type" content="text/html; charset=gb_2312-80">  
<TITLE>页内查找</TITLE>  
<script language="JavaScript">  
<!--   
function doZoom(size){  
    document.getElementById('zoom').style.fontSize=size+'px'  
} 

var DOM = (document.getElementById) ? 1 : 0;  
var NS4 = (document.layers) ? 1 : 0;  
var IE4 = 0;  
if (document.all)  
{  
    IE4 = 1;  
    DOM = 0;  
} 
var win = window;     
var n   = 0; 
function findIt() {  
	var ss = document.getElementById("searchstr");
    var v = ss.value;
	if (v != "")
	{
        ss.value = "";
		findInPage(v);
		ss.value = v;
	}
} 

function findInPage(str) {  
var txt, i, found; 
if (str == "")  
    return false; 
if (DOM)  
{  
    win.find(str, false, false, true);  
	return true;  
} 
if (NS4) {  
    if (!win.find(str))  
        while(win.find(str, false, false, true))  
            n++;  
    else  
        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> 
<BODY>  
<br>  
<div align="center">  
  <table width="90%" border="0" align="center" cellspacing="0" bgcolor="#EFF7FF" style='border:1px #8CA5B5 solid;' id="zoom">  
    <tr bgcolor="#DBEAF5">   
      <td height="50" style='border-bottom:1px #8CA5B5 solid;'>  
        <div align="center">  
<table width="98%"><tr><td align="left">  
<input type="text" id="searchstr" value="可以" name="searchstr" class="textbox" size="10">  
<input type="button" value="页内查找" onclick="javascript:findIt();" class="sbttn">    
    <tr>   
      <td>
        <br>  
        您可以使用此功能将其他用户共享出来的文件夹加入您收藏的共享文件夹列表(显示在上方的"我收藏的共享文件夹")中.<br>  
        <br>  
        <br>  
        您可以使用此功能将其他用户共享出来的文件夹加入您收藏的共享文件夹列表(显示在上方的"我收藏的共享文件夹")中.<br>  
        <br>  
        <br>  
        您可以使用此功能将其他用户共享出来的文件夹加入您收藏的共享文件夹列表(显示在上方的"我收藏的共享文件夹")中.<br>  
        <br>  
      </td>  
    </tr>  
  </table>  
</div>  
</BODY>  
</html>

  • 打赏
  • 举报
回复
看看浏览器的编码设置的是否一样
剑峰 2015-07-22
  • 打赏
  • 举报
回复
求大神支招,谢谢了

87,885

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧