Захват Backspace в Chrome и Firefox отличается - PullRequest
5 голосов
/ 20 декабря 2011

Я пытаюсь создать консольное приложение, поэтому я ловлю все нажатия клавиш в окне и делаю с ними связанные вещи (не важно).Проблема в забое.У меня есть следующий код:

$(window).bind("keypress",function(e){
        var code = e.keyCode || e.which;
        if ( code == 8) {
            a = $("#console").html();
            $("#console").html(a.substring(0,a.length-1));
            currentCommand = currentCommand.substring(0,currentCommand.length-1);           
            e.preventDefault();
        }

Однако в Firefox содержимое #console удаляется, но Chrome не выполняет приведенный выше код.Мне нужно кросс-браузерное совместимое решение.Чего мне не хватает?

ДОПОЛНЕНИЕ:

Если я использую keydown / keyup вместо нажатия клавиши, я не могу определить, был ли символ "A" или "aвсегда возвращает «А».

1 Ответ

4 голосов
/ 20 декабря 2011

Прочтите это. IE не запускает нажатие клавиш для этих специальных клавиш. Возможно, то же самое с некоторыми другими браузерами.

Javascript e.keyCode не перехватывает Backspace / Del в IE

...