Определить, когда прокручиваемый div «сфокусирован» в Firefox? - PullRequest
6 голосов
/ 27 мая 2011

Firefox имеет поведение, при котором, если вы нажимаете на прокручиваемый div, то этот div реагирует на все колеса мыши и клавиши Page Up / Down, эффективно делая его «сфокусированным».Однако спецификация HTML5 гласит, что divs не может быть "сфокусированным" технически.Поэтому, хотя div получает события клавиатуры и мыши, об этом не сообщается в document.activeElement или обработчике DOMActivate.

Так как я могу определить, когда прокручиваемый div имеет фокус прокрутки вFire Fox?Вот тестовая страница .Как ни странно, div - это , о котором сообщается в document.activeElement, когда вы нажимаете на него, но это единственный случай, когда это происходит.Обходной путь может заключаться в прослушивании событий click и scroll, но я не уверен, что это лучшее решение?

РЕДАКТИРОВАТЬ: Это для расширения Firefox, поэтому любой JS уровня Chromeбыло бы приемлемо.Это также означает, что я не могу редактировать или предсказывать, как закодированы определенные страницы.

1 Ответ

10 голосов
/ 27 мая 2011

Если назначить атрибут / свойство <div> a tabindex (вы можете установить его на 0, чтобы сделать его фокусируемым в обычном потоке документа, или -1, чтобы удалить его из обычного потока вкладокполностью), то он может запускать события focus и blur.Некоторые простые CSS могут устранить outline, если вы считаете это нежелательным, но это может быть желательно по соображениям удобства использования.

...