经过大量研究(此处和其他地方),我找到了一种方法来防止键盘按下滚动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中插入一些代码,或者是否有办法捕获从中冒出的事件并阻止它?
答案 0 :(得分:0)
我发现一个好的解决方案是倾听重点发生,然后改变它......所以
$('iFrame').click(function(){
window.focus();
});
这仍然会让iframe内部的点击发生,但会立即将焦点返回到您的窗口。