在网上搜了一下,内面内查找文字内容的方法,方法大致如下:
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;
}试了一下,是可以找到内容。
但是现在问题是,如果页面比较大,需要拉动水平、垂直滚动条,查到的内容虽然被标示为蓝色,但是,那个内容可能会在一个角落里面,不容易被发现(就像IE默认的Ctrl+F 搜索结果)。
有没有办法,可以让这个搜索结果定位到屏幕中间?或者有什么其他用户体验更好的解决方案?

解决方案 »

  1.   

    用<a> 标签生成锚点 试过吗
      

  2.   

    简单给阐述下思路,
    当你索引到要查询的元素时,js判断该元素的top和left  width和height  然后获取整个窗体的操作区域width、height  进行加减,思路是这样。 具体代码比你上面的 简单多了 
    主要的就是获取数据的代码了。
      

  3.   

    弹出一个可移动的DIV框覆盖在文章上面,DIV上是所有的查找结果(带分页),点击DIV上的结果转跳到结果(动态生成的锚点),并且DIV是position:fix的
    DIV上带X关闭,关闭后页面的所有锚点去除以上代码不用现在的框架如Jquery的话很麻烦的,光UI部分就很多了另外你搜索的那个代码很古老了,抛弃吧,检测什么NS4,不如检测一下是不是IE10吧