Проверка кода ключа в Javascript не работает для IE - PullRequest
1 голос
/ 08 мая 2009

Я устал писать функцию для проверки кода ключа с помощью JavaScript. Это нормально работает для Firefox, но не IE. Кто-нибудь знает, что не так с моим кодом? Пожалуйста, смотрите код ниже для более подробной информации.

function textCheck(e)
{
 var e = window.event || e
 alert("CharCode value: "+e.charCode)
 alert("Character: "+String.fromCharCode(e.charCode))
}

Ответы [ 2 ]

3 голосов
/ 08 мая 2009

переключите вашу первую строку кода:

...

var e = e || window.event;

...

и посмотрите, поможет ли это.

Кроме того, если это символ Юникода, попробуйте что-то вроде следующего:

function displayunicode(e) {
    var unicode=e.keyCode? e.keyCode : e.charCode
    alert(unicode)
}

Если вы обрабатываете keydown вместо keypress, тогда все становится немного сложнее ... См .: http://unixpapa.com/js/key.html

1 голос
/ 13 февраля 2012

Значения keyCode и charCode ведут себя немного по-разному в разных браузерах и возвращают разные значения для разных событий. В частности, более старые версии IE не поддерживают charCode. Первое предложение, которое у меня есть, - использовать такой инструмент, как jQuery, для нормализации значений ключей в разных браузерах. С помощью jQuery вы можете использовать свойство e.which объекта события, чтобы получить нормализованное значение.

Другая вещь, которую нужно сделать, - использовать средство проверки кода ключа, чтобы сравнить значения, возвращаемые для каждого события для каждого браузера. Я создал удобный онлайн-инструмент для этого и счел чрезвычайно полезным показывать все ключевые коды / коды для каждого события с одного взгляда:

http://www.west -wind.com / WestwindWebToolkit / образцы / Ajax / html5andCss3 / keycodechecker.aspx

Упрощает экспериментирование с различными комбинациями клавиш и позволяет сравнить их в разных браузерах. jQuery, который и нажатие клавиш, как правило, работают наиболее согласованно.

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