2

かなりの調査 (ここと他の場所) の後、キーボードを押して 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 に何らかのコードを挿入する必要がありますか?それとも、そこから発生するイベントをキャッチして防止する方法はありますか?

4

1 に答える 1

0

良い解決策は、フォーカスが発生するのを聞いてから、結果として変更することです...だから

$('iFrame').click(function(){
 window.focus();
});

これにより、iframe 内のクリックは引き続き発生しますが、直後にフォーカスがウィンドウに戻ります。

于 2013-02-27T03:15:20.203 に答える