Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.10.2010, 15:48
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

Бардак с event.keyCode и event.charCode в браузерах
В своем скрипте я в событии onKeyPress пытаюсь отследить ввод одинарной или двойной кавычки. И вот чего мне возвращают разные браузеры
FireFox - одинарная кавычка event.keyCode = 0; event.charCode=39
Chrome - одинарная кавычка event.keyCode = 39; event.charCode=39
IE6 - одинарная кавычка event.keyCode = 39; event.charCode undefined

И это небыло бы проблемой если бы у FireFox event.keyCode = 39 не обозначал стрелку влево.

Может есть библиотека которая обходит эти разногласия ?
Ответить с цитированием
  #2 (permalink)  
Старый 05.10.2010, 15:55
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Casufi
И это небыло бы проблемой если бы у FireFox event.keyCode = 39 не обозначал стрелку влево.
Не путайте код символа с кодом клавиши.
Ответить с цитированием
  #3 (permalink)  
Старый 05.10.2010, 16:02
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

А каким же тогда чудным образом вернуть код символа в IE 6?
Ответить с цитированием
  #4 (permalink)  
Старый 05.10.2010, 16:09
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

keyCode у события keypress -- код символа.
keyCode у события keydown -- код клавиши.

Как-то так.
Ответить с цитированием
  #5 (permalink)  
Старый 05.10.2010, 16:23
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

Сообщение от Kolyaj Посмотреть сообщение
keyCode у события keypress -- код символа.
keyCode у события keydown -- код клавиши.
Как-то так.
Вернулись в начало. Вопрос вот в чем
1) Одинаково ли в этом случае ведут себя IE6, IE7, IE8
2) Как поведут себя разные версии Opera?
3) Существует ли либа которая позволяет выбрать правильный метод определения кода введенного символа?
Сейчас я вышел из положения тупым определением версии броузера и ветвлением алгоритма, а ведь не я первый сталкиваюсь с подобной проблемой (и пока что не я последний к сожалению).
Ответить с цитированием
  #6 (permalink)  
Старый 05.10.2010, 16:50
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Я такой либы не знаю, но я и не искал. Скорее всего есть.

Сообщение от Casufi
2) Как поведут себя разные версии Opera?
Разные версии Opera могут себя вести абсолютно непредсказуемо, это фирменная фича Оперы. У неё при некоторых сочетаниях клавиш ещё коды могут совпадать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает клавиша Ж / ; в FF the.economist Events/DOM/Window 6 18.12.2008 17:20
помогите с xmlHttp ошибка в браузерах Юрийййй AJAX и COMET 0 22.07.2008 21:16