2012-02-20 8 views
2

私は、スクロール可能なコンテンツを表示するためにページ上に表示されるライトボックスのようなdivを持っています。 FF、IE、Chromeでは、ユーザーが矢印とページダウン/アップキーでライトボックスをスクロールできるようにするには、tabindexを割り当てて.focus()を呼び出すだけで簡単です。Operaでキーボードスクロールのdivをフォーカスする方法

Operaでは、.focus()は何もせず、バックグラウンドページにあるタブストップ要素に作用するタブ/矢印/ページキーは引き続き実行されます。

はここでの問題を説明するためのフィドルです:http://jsfiddle.net/9W943/5/

私はdiv要素を集中する方法の多くの例を見てきましたが、いずれもtabindexのアプローチはOperaで動作しないことを認めているように見えるん。オペラにライトボックスのフォーカスを強制することはできますか?それに失敗したら、最善の回避策は何ですか?キーイベントを聞き、ライトボックスを「手動で」スクロールしますか?

私はライトボックスで.click()を呼び出し、クリックした後にキーボードスクロールが正しく機能するので、+偽のクリックイベントをディスパッチすることを試みましたが、どちらもうまくいきませんでした。

また、非入力要素がフォーカスできるようにするのがなぜ標準的でないのか、キーボードイベントを受け取ることができますキーボードを介してやり取りできる要素ではない場合、フォーカスされた要素をどのように定義しますか?残念ながら私の知っている何の素敵な回避策はありません。 - -

答えて

2

これは既知のバグ(内部DSK-269802)がある/私は昨日、この問題に自分自身を走り、「バンプ」のバグを与える

- おそらく、それをいくつかの進行中の開発作業に適合させることができます。 Operaで動作しているかのようにバグを無視してコードすることをお勧めしたいと思います。

+0

(Shift-Arrowを押し下げる(上)を押すとオーバーフロー:自動コンテンツのスクロールが起こるような隠れた機能がありますが、目的やバグがあるかどうかわかりません):-p) – hallvors

関連する問題