Javascript 如何绕过快速搜索Firefox功能并捕获正斜杠按键

Javascript 如何绕过快速搜索Firefox功能并捕获正斜杠按键,javascript,jquery,firefox,Javascript,Jquery,Firefox,我正在为我的站点上的一个功能捕获正斜杠(/)的按键值'191'。由于Firefox的快速搜索功能,它在除Firefox之外的所有浏览器上都能正常工作。“191”仍然注册并执行操作(关注输入字段,弹出帮助文本),但关注点转到快速搜索 我在另一个StackOverflow问题中读到,Firefox将正斜杠捕获为字符代码“0”,但这没有任何作用 有没有一种方法可以让我忽略Firefox快速搜索并控制正斜杠?使用JavaScript和jQuery。我同意质疑是否应该使用该快捷方式很重要。但是,如果你决定

我正在为我的站点上的一个功能捕获正斜杠(/)的按键值'191'。由于Firefox的快速搜索功能,它在除Firefox之外的所有浏览器上都能正常工作。“191”仍然注册并执行操作(关注输入字段,弹出帮助文本),但关注点转到快速搜索

我在另一个StackOverflow问题中读到,Firefox将正斜杠捕获为字符代码“0”,但这没有任何作用


有没有一种方法可以让我忽略Firefox快速搜索并控制正斜杠?使用JavaScript和jQuery。

我同意质疑是否应该使用该快捷方式很重要。但是,如果你决定(就像其他人一样——这也是gmail中的搜索快捷方式),你只需要捕获文档的keydown事件(而不是keypress或keydup),然后阻止默认操作,这将及时拦截以停止默认的firefox行为。此外,请确保用户尚未在文本字段中键入内容。下面是一个简单的例子:

$(文档).keydown(函数(e){
var _target=$(e.target);
var\u focused=$(document.activeElement);
var|u inputing=_focused.get(0).标记名.toLowerCase()===“textarea”||聚焦.get(0).标记名.toLowerCase()==“输入”;
///(正斜杠)键=搜索
如果(!\u输入和&e.keyCode===191){
e、 预防默认值();
$(“#搜索输入”).focus();
返回;
}
});

首先询问您是否应该这样做。一般来说,在未经用户知情和同意而改变浏览器预期行为之前,我会三思而后行。这样做主要会挫败和疏远这些用户。(当然,我说这句话时对你的应用程序一无所知;也许你有一个很好的理由想要这种行为。)你最好的选择是选择一个不同的快捷键。即使你今天解决了这个问题,也没有任何迹象表明Firefox的新更新不会再次破坏它。最好完全避免冲突。还有一种情况可能确实需要这样做:如果用户启用了“开始键入时搜索文本”选项,则搜索栏将弹出文本框外几乎所有按下的键。
e.preventDefault()
当用户在Firefox中启用了“开始键入时搜索文本”时,
keydown
事件内部也会起作用。作为旁注-如果启用了快速搜索,则在Firefox中keydown对“/”不起作用,只有keydown