Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] addEventListener в Firefox не работает (http://forum.oszone.net/showthread.php?t=99902)

Coutty 04-02-2008 21:24 732908

addEventListener в Firefox не работает
 
В Firefox (2.0.0.6) не работает скрипт с addEventListener:
HTML код:

<html><head><title>1</title>
<script>
document.addEventListener('KeyDown', function(ev) {
alert(ev.keyCode);
// bla-bla-bla
}, false);
</script>
</head> <body>
</body></html>

В Опере всё нормально.
Погуглил на эту тему - и не нашёл ничего полезного.

Что с ним можно сделать?
И вообще, будет ли это и в IE работать? (он у меня далеко - не могу проверить)

Sham 05-02-2008 02:46 733086

Цитата:

Цитата Coutty
'KeyDown', »

в нижний регистр...
Цитата:

Цитата Coutty
будет ли это и в IE работать? »

IMHO нет....

Sham 05-02-2008 03:39 733101

Coutty, что-то типа этого будет
Код:

if (typeof window.document.addEventListener == 'function')
{
        window.document.addEventListener('keydown', function(e) {
                alert(e.keyCode);
        }, false);
}
else if (typeof window.event == 'object')
{
        window.document.onkeydown=function(){
                alert(window.event.keyCode);
        }
}


Coutty 05-02-2008 09:29 733205

Sham, спасибо, работает!

Только теперь ещё одна проблемка нарисовалась: при русской раскладке Firefox не показывает кейкоды буквенных клавиш. Выводится "0". В Опере норм - число больше тысячи.

Sham 05-02-2008 22:37 733807

Coutty, попробуй вместо
Цитата:

Цитата Sham
e.keyCode »

Код:

e.which
imo это системные штучки...

Coutty 06-02-2008 12:24 734118

Sham, не помогло.
Системные - в смысле, от системы зависят? Я только в линуксе проверял.

Sham 06-02-2008 22:14 734510

Coutty, вообще для отладки лучше windows, поскольку подавляющее большинство юзеров сидит в ней...
Цитата:

Цитата Coutty
от системы зависят? »

это вопрос к производителям...

.... http://www.google.com/search?q=%2B%D...B7%D0%B5%D1%80 ...

Coutty 21-07-2008 09:55 857354

Sham, вот сейчас опять возник тот же вопрос. И ведь интересно, скажем, стрелки в файрфоксе обрабатываются через ev.keyCode, а буквы и пробел - через ev.which.
Пришлось объединять, чтоб всё сразу было:)

Вот такой код (если кому вдруг понадобится):

Код:

if (typeof window.document.addEventListener == 'function') // эта часть для FF
  {
  window.document.addEventListener('keypress',function(ev) {
    if (ev.keyCode == 0)
      keyHandler(ev.which);
    else
      keyHandler(ev.keyCode);        // вызываем обработчик нажатий
    }, false);
  }
else if (typeof window.event == 'object') // эта - для Оперы
  {
  window.document.onkeypress = function() {
    keyHandler(window.event.keyCode);
    }
  }


Sham 22-07-2008 03:03 858055

Coutty, я бы не парился и заюзал бы какой-нить фреймворк...

Coutty 24-07-2008 16:04 860100

Sham, да ради этих десяти строк кода искать фреймворк... У меня проект чисто игровой был. Вот я хотел, чтоб и в Опере и в ФФ управление работало. Ну а другие браузеры... отдыхают благодаря использованию canvas. Excanvas совсем не подходит для динамичной отрисовки.


Время: 07:19.

Время: 07:19.
© OSzone.net 2001-