私はスライドショーを表示しているモーダルウィンドウにページを持っています。意図した視聴者はタブレットユーザーのためのもので、右から左または左にスワイプして次または前のスライドを見てショーをナビゲートします。これはすべて美しく動作します。JavaScriptのkeyDownが起動しない
しかし、誰かがコンピュータを使用してページを閲覧した場合、キーボードの矢印キーを使用してページを移動できるようにしたいと考えています。私は、ユーザーがモーダルウィンドウ内をクリックした後で、キーストロークを検出することができます。キーボードナビゲーションが表示される前に、どこかをクリックする必要がないようにしたいと思っています。私が何を試しても問題ないようですが、これは常に問題です。
これはモーダルウィンドウなので、iFrameを使用してコンテンツを表示します。
ここにコードがあります。私は、ページのロード時にそれが実行しないことを確認した、とpageTurn機能は、他のイベントと連携して動作します。
document.onkeydown = function(e){
if (e == null) {
keycode = event.keyCode;
} else {
keycode = e.which;
}
if(keycode == 37){
pageTurn('right');
} else if(keycode == 39){
pageTurn('left');
}
};
これらのどちらも異なることはありませんでした。おそらく、iFramedコンテンツを持つモーダルウィンドウなので、何とか親オブジェクトにアクセスする必要がありますか?よく分かりません。私はparent.focus()を試しましたが、それは何もしていないようです。 – unclesol
ああ、もしそれがiframeなら、もう少し複雑です。代わりに 'top.document.documentElement'にイベントをアタッチする必要があります。 –
はい!それがトリックでした。私はこの答えを正しいものとしてマークしています。 iFrameのシナリオを含めるには、回答を更新してください。どうもありがとうございました! – unclesol