我正在为我网站上的某个功能捕获正斜杠(/)的按键值'191'。由于其快速搜索功能,在除Firefox之外的每个浏览器上都能正常工'191'仍然会注册并执行操作(专注于输入字段,弹出帮助文本),但重点是快速搜索。
我读了另一个StackOverflow问题,说Firefox将正斜杠捕获为字符代码'0',但是没有做任何事情。
有没有办法可以忽略Firefox快速搜索并控制正斜杠?使用JavaScript和jQuery。
答案 0 :(得分:10)
我同意质疑您是否应该使用该快捷方式很重要。但是,如果您决定(正如其他人那样 - 这也是gmail中的搜索快捷方式),您只需要捕获文档keydown事件(不是按键或键盘),然后阻止默认操作,它将及时拦截停止默认的firefox行为。此外,请务必检查用户是否尚未在文本字段中键入内容。这是一个简单的例子:
$(document).keydown(function(e) {
var _target = $(e.target);
var _focused = $(document.activeElement);
var _inputting = _focused.get(0).tagName.toLowerCase()==="textarea" || _focused.get(0).tagName.toLowerCase()==="input";
// / (forward slash) key = search
if (!_inputting && e.keyCode===191) {
e.preventDefault();
$("#search-input").focus();
return;
}
});