在网上搜了一下,内面内查找文字内容的方法,方法大致如下:
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 搜索结果)。
有没有办法,可以让这个搜索结果定位到屏幕中间?或者有什么其他用户体验更好的解决方案?
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 搜索结果)。
有没有办法,可以让这个搜索结果定位到屏幕中间?或者有什么其他用户体验更好的解决方案?
当你索引到要查询的元素时,js判断该元素的top和left width和height 然后获取整个窗体的操作区域width、height 进行加减,思路是这样。 具体代码比你上面的 简单多了
主要的就是获取数据的代码了。
DIV上带X关闭,关闭后页面的所有锚点去除以上代码不用现在的框架如Jquery的话很麻烦的,光UI部分就很多了另外你搜索的那个代码很古老了,抛弃吧,检测什么NS4,不如检测一下是不是IE10吧