Как сфокусировать div для прокрутки клавиатуры в Opera - PullRequest
2 голосов
/ 20 февраля 2012

У меня есть лайтбокс, похожий на div, который появляется на страницах для представления прокручиваемого контента.В FF, IE и Chrome пользователь может прокручивать лайтбокс с помощью клавиш со стрелками и pagedown / up так же просто, как назначить ему tabindex и вызвать .focus ().

В Opera, .focus () ничего не делает, и клавиши tab / arrow / page будут продолжать работать с любыми элементами tabstop на фоновой странице.

Вот скрипка для иллюстрации проблемы: http://jsfiddle.net/9W943/5/

Я видел многопримеры того, как сфокусировать div, но никто не признает, что подход tabindex не работает в Opera.Есть ли способ заставить Opera фокусироваться на лайтбоксе?В противном случае, какой лучший обходной путь - слушать ключевые события и затем «вручную» прокручивать лайтбокс?(Или я могу перенаправить события?)

Я попытался вызвать .click () для лайтбокса и создать + отправку события поддельного щелчка - поскольку прокрутка клавиатуры работает правильно после нажатия на нее - но ни одна из них не сработала.

Кроме того, мне очень любопытно, почему нестандартно не фокусируемые элементы не являются вводимыми, поскольку они могут и действительно получать события клавиатуры!Как вы определяете сфокусированный элемент, если не как элемент, с которым можно взаимодействовать через клавиатуру?

1 Ответ

2 голосов
/ 21 февраля 2012

Это известная ошибка (внутренне DSK-269802) - к сожалению, я не знаю хороших обходных путей: - /

Вчера я сам столкнулся с этой проблемой и сообщу об ошибке "удар"- возможно, мы сможем вписать это в какую-то постоянную работу по разработке.Я бы порекомендовал вам игнорировать ошибку и просто кодировать, как если бы она работала в Opera, потому что когда-нибудь это произойдет.

...