在 Firefox 中,我注意到问题中给出的小提琴(v4)有效,但不是提问者期望的那样。
在 Firefox 中发生的是该函数确实找到了值..:您刚刚在输入字段中输入了它。然后浏览器的find
方法似乎挂在输入“控件”的“上下文”中,并没有脱离它。由于浏览器将从最后一个活动位置继续搜索,如果您在输入字段之后选择任何内容,该功能将按预期工作。所以诀窍是不要在搜索开始时在输入字段中“被困”。
关于如何摆脱它的基本(肮脏)示例(不一定是正确的解决方案,也不一定是纯 jquery,但可能会激发一个有用的例程,因为您现在知道 FF 中问题的根源):
$( "button[type='submit']" ).click(function(){
var tst=$('#search').val(); //close over value
$('#search').val(''); //clear input
if(tst){ //sanity check
this.nextSibling.onclick=function(){findString( tst );}; //example how to proceed
findString( tst ); //find first value
} else { alert('please enter something to search for'); }
return false;
});
示例小提琴在 FF 中进行了测试(工作)。
PS:鉴于您使用的具体示例<li>
,我确实认为 Sergio 的答案将是一个更合适的解决方案,尤其是因为它永远不会运行 line: ,但是对您的问题alert ("Opera browsers not supported, sorry...")
的正确答案window.find
仍然是一个有趣的答案!
PS2:如果您实际上是在使用(或复制)浏览器的搜索功能,为什么不教育用户并指示他们点击Ctrl+ F?
希望这可以帮助!