Значения keyCode и charCode ведут себя немного по-разному в разных браузерах и возвращают разные значения для разных событий. В частности, более старые версии IE не поддерживают charCode. Первое предложение, которое у меня есть, - использовать такой инструмент, как jQuery, для нормализации значений ключей в разных браузерах. С помощью jQuery вы можете использовать свойство e.which объекта события, чтобы получить нормализованное значение.
Другая вещь, которую нужно сделать, - использовать средство проверки кода ключа, чтобы сравнить значения, возвращаемые для каждого события для каждого браузера. Я создал удобный онлайн-инструмент для этого и счел чрезвычайно полезным показывать все ключевые коды / коды для каждого события с одного взгляда:
http://www.west -wind.com / WestwindWebToolkit / образцы / Ajax / html5andCss3 / keycodechecker.aspx
Упрощает экспериментирование с различными комбинациями клавиш и позволяет сравнить их в разных браузерах. jQuery, который и нажатие клавиш, как правило, работают наиболее согласованно.