event.keyCode и charCode в сафари дают «неопределенное» для немецких специальных знаков - PullRequest
0 голосов
/ 30 августа 2011

Я запускаю эту функцию на keyUp:

function onKeyUpHandler(e) {
if(!e) var e = window.event;
var code;
if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    else if (e.charCode) code = e.charCode;
if (code < 37 || code > 40) { // not arrows
    //do Stuff;
}

, она прекрасно работает для всех символов в большинстве браузеров, но Safari (особенно на iPad) выдает код как «неопределенный» (так что нет »делать вещи ") для некоторых специальных символов, таких как немецкий ä, ü, ß и т. д., поэтому я не могу проверить, если это стрелка.Я не уверен, должен ли я добавить "или (typeof (code) == 'undefined')".Не могли бы вы помочь мне решить, что мне делать?

1 Ответ

3 голосов
/ 30 августа 2011

keyCode - единственное свойство, которое вам нужно в событиях keyup и keydown. Он работает во всех основных браузерах, включая Safari. Вот лучшая версия вашей функции. Я не уверен, есть ли другая проблема или нет; дайте мне знать, если есть.

function onKeyUpHandler(e) {
    e = e || window.event;
    var code = e.keyCode;
    if (code < 37 || code > 40) { // not arrows
        //do Stuff;
    }
}

Вот что я считаю полной страницей о ключевых событиях JavaScript: http://unixpapa.com/js/key.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...