我可以拦截IE上的控件按键吗?
问题描述:
我试图使用jQuery拦截我的网页上控制-A按键,就像这样:我可以拦截IE上的控件按键吗?
$(document).keypress(function (event) {
if (event.ctrlKey && (event.which == 65 || event.which == 97)) {
event.preventDefault();
// ...
}
});
这个工作在Firefox,但在IE7,我的事件处理程序不会被调用,所有的页面上的文本被选中(而不是事件处理程序的Firefox)。
有没有什么办法可以拦截IE上的控件-A?
答
此作品在FF 3.5和IE7对我来说:
$(function() {
var isCtrl = false;
$(document).keyup(function (e) {
if(e.keyCode == 17)
isCtrl = false;
}).keydown(function (e) {
if(e.keyCode == 17)
isCtrl = true;
if(e.keyCode == 65 && isCtrl == true) {
alert('Intercepted CTRL+A');
e.preventDefault();
}
});
});
答
如果您在事件处理程序返回false,那么将取消浏览器的行为。根据浏览器的不同,其行为可能会有所不同(例如,在keydown取消它之后,按键仍然会在firefox上触发,而IE会停止)。
我认为问题是你的参数名称。只是称之为'e'而不是预定义的'event' – 2009-10-30 21:09:59