私は、スクロール可能なコンテンツを表示するためにページ上に表示されるライトボックスのようなdivを持っています。 FF、IE、Chromeでは、ユーザーが矢印とページダウン/アップキーでライトボックスをスクロールできるようにするには、tabindexを割り当てて.focus()を呼び出すだけで簡単です。Operaでキーボードスクロールのdivをフォーカスする方法
Operaでは、.focus()は何もせず、バックグラウンドページにあるタブストップ要素に作用するタブ/矢印/ページキーは引き続き実行されます。
はここでの問題を説明するためのフィドルです:http://jsfiddle.net/9W943/5/
私はdiv要素を集中する方法の多くの例を見てきましたが、いずれもtabindexのアプローチはOperaで動作しないことを認めているように見えるん。オペラにライトボックスのフォーカスを強制することはできますか?それに失敗したら、最善の回避策は何ですか?キーイベントを聞き、ライトボックスを「手動で」スクロールしますか?
私はライトボックスで.click()を呼び出し、クリックした後にキーボードスクロールが正しく機能するので、+偽のクリックイベントをディスパッチすることを試みましたが、どちらもうまくいきませんでした。
また、非入力要素がフォーカスできるようにするのがなぜ標準的でないのか、キーボードイベントを受け取ることができますキーボードを介してやり取りできる要素ではない場合、フォーカスされた要素をどのように定義しますか?残念ながら私の知っている何の素敵な回避策はありません。 - -
(Shift-Arrowを押し下げる(上)を押すとオーバーフロー:自動コンテンツのスクロールが起こるような隠れた機能がありますが、目的やバグがあるかどうかわかりません):-p) – hallvors