在Javascript页面中搜索-一个结果错误
Search in Page Javascript - One result error
我正在实现一个'在页面中找到'搜索框,并发现了一些javascript代码,工作得很好。如果有多个字符串,按enter键在结果之间循环,然后返回到开始处。但是,如果只有一个结果,在初始搜索之后再次按enter键会弹出未找到的警报。是否有任何方法阻止警报显示时,按下enter再次对单个结果?
代码如下:
var TRange=null;
function findString (str) {
if (parseInt(navigator.appVersion)<4) return;
var strFound;
if (window.find) {
// CODE FOR BROWSERS THAT SUPPORT window.find
strFound=self.find(str);
if (!strFound) {
strFound=self.find(str,0,1);
while (self.find(str,0,1)) continue;
}
}
else if (navigator.appName.indexOf("Microsoft")!=-1) {
// EXPLORER-SPECIFIC CODE
if (TRange!=null) {
TRange.collapse(false);
strFound=TRange.findText(str);
if (strFound) TRange.select();
}
if (TRange==null || strFound==0) {
TRange=self.document.body.createTextRange();
strFound=TRange.findText(str);
if (strFound) TRange.select();
}
}
else if (navigator.appName=="Opera") {
alert ("Opera browsers not supported, sorry...")
return;
}
if (!strFound) alert ("String '"+str+"' not found!")
return;
}
我已经看过代码,看看是否有什么明显的,但我是新的javascript,不能弄清楚。
任何帮助都是非常感激的。谢谢。不支持window.find
。我建议不要使用它。
也就是说,你对
的尝试while(window.find(str, 0, 1)) continue;
当只有一个结果时,"倒带"搜索到开始将不起作用,因为浏览器已经突出显示了该结果- 在突出显示的结果之前(或之后)没有结果。
一种解决方案是向后搜索你知道确实存在的东西(例如document.body.innerHTML
的第一个字母),直到你到达开头。
注意,如果您搜索文档中第一个单词的唯一实例,这个小技巧仍然可能失败!
相关文章:
- 我怎么能把一个错误当作未捕获的错误来记录呢
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- javascript window.location在检查firebug时给了我一个错误的url路径
- new SharedWorker(“whatever.js”)返回一个错误
- JSON.parse给了我一个错误,但JSONLint说它'是一个有效的json
- 有人能向我解释一下我犯的一个错误吗
- Jasmine:测试setTimeout函数会抛出一个错误
- JavaScript中的一个错误
- 为什么jqPlot显示了一个错误的饼图,其中包含通过AJAX检索的数据
- Webrtc和socket.io:createanswer()总是有一个错误.为什么?我的代码连接了两个对等体,但其中只
- 使用 jQuery 构建一个元素会给我一个错误
- Chai 期望 [函数] 抛出一个(错误)未通过测试(使用 Node)
- 在我的 jquery 函数中得到一个错误
- Addeventlistener 已转换为 IE.也许是另一个错误
- 我有一个错误,由于某种原因,号码被更改了,而不是名字
- 我无法建立离子机器人项目..它给了我一个错误:生成cmd enont
- JQueryAJAX调用:304 respose产生一个错误
- 继续得到一个错误,即某个东西不是函数,但找不到原因
- jQuerylib会导致一个错误,直到刷新为止
- HTML图像加载触发一个错误