Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   после Alt+Tab не обрабатываются onkeyup и onkeydown (https://javascript.ru/forum/misc/34049-posle-alt-tab-ne-obrabatyvayutsya-onkeyup-i-onkeydown.html)

pikko 19.12.2012 01:26

после Alt+Tab не обрабатываются onkeyup и onkeydown
 
примерно таким образом определяю обработчики для onkeyup и onkeydown:

document.onkeydown = function ( event ) { event = event || window.event; pushed( event.keyCode ) }
document.onkeyup = function ( event ) { event = event || window.event; released( event.keyCode ) }


всё замечательно работает,
но если переключиться на другое окно с помощью Alt+Tab, то после того как опять возвращаешься в браузер onkeyup и onkeydown не обрабатываются, до того момента пока не кликнуть в окно или клавишей Tab не перевести туда фокус.

Посмотрел, у Яндекса такой проблемы нет ( там на переключение между страницами поисковой выдачи повешаны Ctrl+стрелки ). Не особо хочется лезть в яндексовскую мешанину яваскриптов ( точнее времени на это сейчас совсем нет ). Может кто знает почему так происходит и как возвращать фокус document'у после Alt+Tab?

UPD: всё решено! проблема была в моём говно-алгоритме :)

Deff 19.12.2012 03:06

pikko,
Спасает пробежка по всем табам с указанием onblur

pikko 19.12.2012 03:14

Deff, что имеется ввиду под "табами" ? когда по ним пробегаться? и что делать при onblur ?

ведь проблема в том, что когда возвращаешься в браузер фокус непонятно где

Deff 19.12.2012 03:39

Цитата:

Сообщение от pikko
Deff, что имеется ввиду под "табами" ? когда по ним пробегаться? и что делать при onblur ?

Под табами подразумевается тот же конечный массив объектов, что и при пробежке
по Alt+Tab,
Цитата:

и что делать при onblur ?
После пробежки и onblur можно применять onkeyup и onkeydown:
Точнее пробежку сделать при нажатии любой из этих клавиш(возможно придется продублировать
(сымитировать повторное нажатие скриптом) onkeyup и onkeydown: при наличии снятия фокуса с выбранных элементов данного массива "Alt+Tab" - объектов

pikko 19.12.2012 03:58

я понял — я непонятно объяснил:
Alt+Tab перехватываю не я, а операционная система :)
и переключает фокус между открытыми окнами-приложениями
( например: браузер, менеджер файлов, недобраузер, любимая игра, и что-там-ещё-открыто ... )

и я не пытаюсь перехватить Alt+Tab, меня интересуют другие клавиши, и вот они не перехватываются после возврата в браузер с помощью Alt+Tab

Deff 19.12.2012 04:07

Цитата:

Сообщение от pikko
Alt+Tab перехватываю не я, а операционная система

ясн - я думал Alt+Tab - фокус на элементы страницы браузера, ксать имхо есть вроде сочетание клавиш, временно блокирующие Alt+Tab (не наю возможно ли их сымитировать скриптом из браузера

pikko 19.12.2012 05:53

Всё решено! Тема больше неактуальна.
проблема была в моём говно-алгоритме :)
кнопка Alt из комбинации Alt+Tab записывалась как нажатая, но вовремя не удалялась, так как для неё не наступало событие onkeyup, и мешала дальше своей "нажатостью"


PS: жаль нет кнопки "удалить тему"


Часовой пояс GMT +3, время: 19:16.