проблема: webkit отправляет код клавиши 38 (стрелка вверх) на нажатие клавиши, когда вы делаете shift-7 (амперсанд).
сводка: & и выше обаравно 38.% и слева оба равны 37. 'и справа оба равны 39. (и вниз оба равны 40. для firefox и opera, 37/38/39/40 не отправляются для &,%,', (.они отправляют их только для вверх, вниз, влево, вправо, но для веб-набора и, т. е. отправляют 37/38/39/40 для клавиш со стрелками и &,%, ', (. обратите внимание, что для веб-набора вверх / вниз / влево / вправоустанавливает charCode в 0, но не для &,%, ', (.
решение: , поэтому, если вы обрабатываете эти события с помощью кода клавиши, вам нужно либо игнорировать, когда клавиша Shift нажатаили проверьте, является ли charCode 0
- Лучший ресурс: http://unixpapa.com/js/key.html
- Проверьте браузер: http://asquare.net/javascript/tests/KeyCode.html
- bugs.jquery.com / ticket / 7300. "Это сделано для соответствия IE. События нажатия клавиш должны запускаться только для клавиш, вставляющих символы. Обратите внимание, что keydown / keyup срабатывает только для клавиш со стрелками."
- Интересный проект: github.com/OscarGodson/ jKey