かなりの調査 (ここと他の場所) の後、キーボードを押して HTML ページをスクロールしないようにする方法を見つけました。
var ar=new Array(33,34,35,36,37,38,39,40);
var prevent_acc = function(e) {
var key = e.which;
console.log(key);
//if(key==35 || key == 36 || key == 37 || key == 39)
if($.inArray(key,ar) > -1) {
console.log("preventing")
e.preventDefault();
return false;
}
return true;
}
$(document).keydown(prevent_acc);
$(document).keyup(prevent_acc);
$(document).keypress(prevent_acc);
フォーカスがメイン ページにある場合は、すべてうまく機能します。ただし、iframe コンテナーがフォーカスされると問題が発生します。その後、ページ全体がスクロールされ、関数がトリガーされません。
各 iframe に何らかのコードを挿入する必要がありますか?それとも、そこから発生するイベントをキャッチして防止する方法はありますか?