Как обойти функцию быстрого поиска Firefox и захватить нажатие косой черты - PullRequest
13 голосов
/ 17 октября 2011

Я фиксирую значение нажатия клавиши «191» для косой черты (/) для функции на моем сайте.Прекрасно работает во всех браузерах, кроме Firefox, благодаря функции быстрого поиска.'191' все еще регистрируется, и действие выполняется (фокус на поле ввода, всплывающий текст справки), но фокус переходит к быстрому поиску.

Я прочитал в другом вопросе StackOverflow, говоря, что Firefox захватывает форвардкосая черта как код символа '0', но это ничего не сделало.

Есть ли способ, которым я могу игнорировать Быстрый поиск Firefox и получить контроль над прямой косой чертой?Использование JavaScript и jQuery.

1 Ответ

10 голосов
/ 19 декабря 2011

Я согласен, важно задать вопрос, следует ли использовать этот ярлык. Однако, если вы решите (как и другие - это и есть ярлык поиска в gmail), вам просто нужно захватить событие нажатия клавиши документа (не нажатие клавиши или нажатие клавиши), а затем запретить действие по умолчанию, которое будет перехватывать во времени до остановки. поведение 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;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...