| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Применение библиотек > JQuery, keypress в браузере google chrome |
| Автор: FlakeMusic 16.8.2010, 11:55 | ||||
Здравствуйте.
Если нажать Enter+Ctrl, то выводит 10 вместо 13. Во всех др. браузерах выводит 13. Из-за этого в хроме не работает условие:
Почему такое происходит? |
| Автор: Amphiluke 16.8.2010, 12:51 |
| Попробуйте вместо keypress сделать keyup и вместо e.which использовать e.keyCode |
| Автор: ksnk 16.8.2010, 12:51 |
| а патамушта! Движек WebKit писался изначально для Мака, а у него перевод строки - \r , а не \n, как в юниксе или \n\r, как в винде. Что добавляет программистам еще немного радости при кодировании Нужно проверять и то и это. |
| Автор: FlakeMusic 16.8.2010, 13:15 | ||
т.е. такая проверка верна?
|
| Автор: ksnk 16.8.2010, 14:39 | ||||
| Хотя это довольно странно. Обычно which не проверяют, а проверяют keyCode. и он всегда получается 13 для Enter'а
то есть вот так должно исправно работать ... надо бы подумать над тем, что такое which ... Добавлено через 4 минуты и 42 секунды а вот http://www.quirksmode.org/js/events_properties.html советуют даже так выковыривать нажатую клавишу
|
| Автор: FlakeMusic 16.8.2010, 14:45 |
| e.keyCode тоже возвращает "10" |
| Автор: ksnk 16.8.2010, 14:47 | ||
вот кусочек из кода jQuery, который доопределяет параметр
так что вот. Именно от маков ноги в это параметр и произрастают... Добавлено через 1 минуту и 49 секунд Ну тогда, значит, проверять на оба значения... :( А сам Enter, без контрола, как надо выглядит, кодом 13? |
| Автор: FlakeMusic 16.8.2010, 14:51 |
Да, 13. |