我可以拦截IE上的控制 - 按键吗?

时间:2009-10-30 20:43:59

标签: jquery events internet-explorer keypress

我正在尝试使用jQuery拦截我的网页上的控件-A按键,如下所示:

$(document).keypress(function (event) {
    if (event.ctrlKey && (event.which == 65 || event.which == 97)) {
        event.preventDefault();
        // ...
    }
});

这适用于Firefox,但在IE7上,我的事件处理程序不会被调用,而且页面上的所有文本都会被选中(就像在没有事件处理程序的Firefox上一样)。

有什么方法可以拦截IE上的控件-A?

2 个答案:

答案 0 :(得分:6)

对我来说,这适用于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();
            }
        }); 
    });

答案 1 :(得分:0)

如果在事件处理程序中返回false,则它将取消浏览器行为。根据浏览器的不同,它可能会有不同的行为(例如,在keydown取消后,keypress仍然会在firefox上触发,而IE会停止它。)