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

tri*_*ium 15 javascript firefox jquery

我正在为我网站上的某个功能捕获正斜杠(/)的按键值'191'.由于其快速搜索功能,在除Firefox之外的每个浏览器上都能正常工 '191'仍然会注册并执行操作(专注于输入字段,弹出帮助文本),但重点是快速搜索.

我读了另一个StackOverflow问题,说Firefox将正斜杠捕获为字符代码'0',但是没有做任何事情.

有没有办法可以忽略Firefox快速搜索并控制正斜杠?使用JavaScript和jQuery.

小智 11

我同意质疑您是否应该使用该快捷方式很重要.但是,如果您决定(正如其他人那样 - 这也是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;
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 作为旁注-如果启用了快速搜索,则只能在firefox中为“ /”使用keyup,而只有keydown (2认同)