powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Перехват нажатия кнопки tab на клавиатуре
8 сообщений из 8, страница 1 из 1
Перехват нажатия кнопки tab на клавиатуре
    #35970187
RAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цель: переопределить поведение элемента DOM (document, iframe, input и т.д.) при нажатии на кнопку Tab, когда фокус находится на нём. Очень не хочется определять версию браузера, а сделать это универсально для всей пятерки браузеров. С оперой и ИЕ всё просто: в ИЕ при нажатии таба генерится только событие onkeydown, в опере генерятся keydown и keypress, но если получаешь таб в keypress, то снимаешь обработчик с keydown и получается одно нажатие = 1 событие.
В chrome же начинаются издевательства: если onkeydown не определен, то в onkeypress нажатие кнопки таб не приходит, если обработчик onkeydown определен, то и в onkeypress приходит событие о нажатии кнопки tab!!! В firefox если определён onkeydown, то при нажатии на таб всплывают три события: onkeypress-onkeydown-onkeypress... при чем чудеса эти только с кнопкой таб, остальные (backspace, pgup и т.д.) работают по человечески.

Кто-нибудь решал подобную задачу или может есть идеи какие?
...
Рейтинг: 0 / 0
Перехват нажатия кнопки tab на клавиатуре
    #35970212
RAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот здесь эксперименты проводил, что бы понятнее было: http://unixadmina.net/te.html, когда выскакивает алерт "to single" -- это означает, что обработчик onkeydown снимается.
...
Рейтинг: 0 / 0
Перехват нажатия кнопки tab на клавиатуре
    #35970327
RAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос снимается, нашел. :)
...
Рейтинг: 0 / 0
Перехват нажатия кнопки tab на клавиатуре
    #36091489
Alex__1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RAndrewвопрос снимается, нашел. :)

Подскажите решение, ПОЖАЛУЙСТА!!! Сечас с такой же проблемой уже 3-й день мучаюсь!!!!!
...
Рейтинг: 0 / 0
Перехват нажатия кнопки tab на клавиатуре
    #36091571
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему просто не обрабатывать потерю фокуса?
...
Рейтинг: 0 / 0
Перехват нажатия кнопки tab на клавиатуре
    #36093141
RAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckА почему просто не обрабатывать потерю фокуса?
Потому, что не у всякого элемента есть такое понятие, как фокус, например <p>...</p> не может ни получить, ни отдать фокус.

Alex__1981
У меня всё само заработало, точнее, как только alert'ы убрал и начал дебагить через добавления сообщений в html. Попробуй посмотреть unixadmina.net/js/prompt.js, может натолкнет на какие-нибудь идеи. Правда я там что-то испортил уже (в konqueror перестало рабоать). Идея состоит в том, что надо возвращать false в обработкичах onkeypress и onkeydown, что бы нажатие клавиши игнорировалось системой. Проблемы с chrome и FF, которые я описывал в первом посту, были связанны с тем, что при алерте события нажатия клавиши в FF посылались как в окно браузера, так и в окно c alert'а (т.к. alert не обрабатывал нажатие, оно уходило родителю -- основному окну, поэтому и казалось, что событие генерится два раза). Хром, помоему (точно не помню), разделял что-ли события между окном алерта и основным окном или что-то типа того. Вобщем, как только перестали появляться попапы, так всё нормально заработало.
...
Рейтинг: 0 / 0
Перехват нажатия кнопки tab на клавиатуре
    #36093254
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, не существует элемента, у которого не был бы захват фокуса ... в том числе и <p></p>
...
Рейтинг: 0 / 0
Перехват нажатия кнопки tab на клавиатуре
    #36095069
Alex__1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RAndrewIDVsbruckА почему просто не обрабатывать потерю фокуса?
Потому, что не у всякого элемента есть такое понятие, как фокус, например <p>...</p> не может ни получить, ни отдать фокус.

Alex__1981
У меня всё само заработало, точнее, как только alert'ы убрал и начал дебагить через добавления сообщений в html. Попробуй посмотреть unixadmina.net/js/prompt.js, может натолкнет на какие-нибудь идеи. Правда я там что-то испортил уже (в konqueror перестало рабоать). Идея состоит в том, что надо возвращать false в обработкичах onkeypress и onkeydown, что бы нажатие клавиши игнорировалось системой. Проблемы с chrome и FF, которые я описывал в первом посту, были связанны с тем, что при алерте события нажатия клавиши в FF посылались как в окно браузера, так и в окно c alert'а (т.к. alert не обрабатывал нажатие, оно уходило родителю -- основному окну, поэтому и казалось, что событие генерится два раза). Хром, помоему (точно не помню), разделял что-ли события между окном алерта и основным окном или что-то типа того. Вобщем, как только перестали появляться попапы, так всё нормально заработало.

короче у меня заработало после того как сделал так:
Код: plaintext
<body bgcolor=# 000000  onLoad="window.parent.mainFrame.focus();doonload();" onKeyPress="return keyHandler(event);">
, здесь ключевое слово return. А на счет возврата false Вы совершенно правы. У меня еще браузер сильно специфичный (Fresco).
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Перехват нажатия кнопки tab на клавиатуре
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]