|
|
|
Перехват нажатия кнопки tab на клавиатуре
|
|||
|---|---|---|---|
|
#18+
Цель: переопределить поведение элемента DOM (document, iframe, input и т.д.) при нажатии на кнопку Tab, когда фокус находится на нём. Очень не хочется определять версию браузера, а сделать это универсально для всей пятерки браузеров. С оперой и ИЕ всё просто: в ИЕ при нажатии таба генерится только событие onkeydown, в опере генерятся keydown и keypress, но если получаешь таб в keypress, то снимаешь обработчик с keydown и получается одно нажатие = 1 событие. В chrome же начинаются издевательства: если onkeydown не определен, то в onkeypress нажатие кнопки таб не приходит, если обработчик onkeydown определен, то и в onkeypress приходит событие о нажатии кнопки tab!!! В firefox если определён onkeydown, то при нажатии на таб всплывают три события: onkeypress-onkeydown-onkeypress... при чем чудеса эти только с кнопкой таб, остальные (backspace, pgup и т.д.) работают по человечески. Кто-нибудь решал подобную задачу или может есть идеи какие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2009, 17:53 |
|
||
|
Перехват нажатия кнопки tab на клавиатуре
|
|||
|---|---|---|---|
|
#18+
вот здесь эксперименты проводил, что бы понятнее было: http://unixadmina.net/te.html, когда выскакивает алерт "to single" -- это означает, что обработчик onkeydown снимается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2009, 17:59 |
|
||
|
Перехват нажатия кнопки tab на клавиатуре
|
|||
|---|---|---|---|
|
#18+
вопрос снимается, нашел. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2009, 18:42 |
|
||
|
Перехват нажатия кнопки tab на клавиатуре
|
|||
|---|---|---|---|
|
#18+
RAndrewвопрос снимается, нашел. :) Подскажите решение, ПОЖАЛУЙСТА!!! Сечас с такой же проблемой уже 3-й день мучаюсь!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 15:41 |
|
||
|
Перехват нажатия кнопки tab на клавиатуре
|
|||
|---|---|---|---|
|
#18+
А почему просто не обрабатывать потерю фокуса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2009, 16:10 |
|
||
|
Перехват нажатия кнопки tab на клавиатуре
|
|||
|---|---|---|---|
|
#18+
IDVsbruckА почему просто не обрабатывать потерю фокуса? Потому, что не у всякого элемента есть такое понятие, как фокус, например <p>...</p> не может ни получить, ни отдать фокус. Alex__1981 У меня всё само заработало, точнее, как только alert'ы убрал и начал дебагить через добавления сообщений в html. Попробуй посмотреть unixadmina.net/js/prompt.js, может натолкнет на какие-нибудь идеи. Правда я там что-то испортил уже (в konqueror перестало рабоать). Идея состоит в том, что надо возвращать false в обработкичах onkeypress и onkeydown, что бы нажатие клавиши игнорировалось системой. Проблемы с chrome и FF, которые я описывал в первом посту, были связанны с тем, что при алерте события нажатия клавиши в FF посылались как в окно браузера, так и в окно c alert'а (т.к. alert не обрабатывал нажатие, оно уходило родителю -- основному окну, поэтому и казалось, что событие генерится два раза). Хром, помоему (точно не помню), разделял что-ли события между окном алерта и основным окном или что-то типа того. Вобщем, как только перестали появляться попапы, так всё нормально заработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 12:55 |
|
||
|
Перехват нажатия кнопки tab на клавиатуре
|
|||
|---|---|---|---|
|
#18+
По-моему, не существует элемента, у которого не был бы захват фокуса ... в том числе и <p></p> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 13:18 |
|
||
|
Перехват нажатия кнопки tab на клавиатуре
|
|||
|---|---|---|---|
|
#18+
RAndrewIDVsbruckА почему просто не обрабатывать потерю фокуса? Потому, что не у всякого элемента есть такое понятие, как фокус, например <p>...</p> не может ни получить, ни отдать фокус. Alex__1981 У меня всё само заработало, точнее, как только alert'ы убрал и начал дебагить через добавления сообщений в html. Попробуй посмотреть unixadmina.net/js/prompt.js, может натолкнет на какие-нибудь идеи. Правда я там что-то испортил уже (в konqueror перестало рабоать). Идея состоит в том, что надо возвращать false в обработкичах onkeypress и onkeydown, что бы нажатие клавиши игнорировалось системой. Проблемы с chrome и FF, которые я описывал в первом посту, были связанны с тем, что при алерте события нажатия клавиши в FF посылались как в окно браузера, так и в окно c alert'а (т.к. alert не обрабатывал нажатие, оно уходило родителю -- основному окну, поэтому и казалось, что событие генерится два раза). Хром, помоему (точно не помню), разделял что-ли события между окном алерта и основным окном или что-то типа того. Вобщем, как только перестали появляться попапы, так всё нормально заработало. короче у меня заработало после того как сделал так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 11:09 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=35970327&tid=1454508]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
148ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 419ms |

| 0 / 0 |
