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

时间:2011-10-17 18:29:07

标签: javascript jquery firefox

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

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

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

1 个答案:

答案 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;
    }
});