阻止iframe键盘事件滚动保持页面

时间:2013-02-27 00:27:35

标签: jquery html

经过大量研究(此处和其他地方),我找到了一种方法来防止键盘按下滚动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中插入一些代码,或者是否有办法捕获从中冒出的事件并阻止它?

1 个答案:

答案 0 :(得分:0)

我发现一个好的解决方案是倾听重点发生,然后改变它......所以

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

这仍然会让iframe内部的点击发生,但会立即将焦点返回到您的窗口。