0

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

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

这适用于 Firefox,但在 IE7 上,我的事件处理程序没有被调用,而是选择了页面上的所有文本(就像在没有事件处理程序的 Firefox 上发生的那样)。

有什么方法可以拦截 IE 上的 control-A 吗?

4

2 回答 2

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();
            }
        }); 
    });
于 2009-10-30T20:47:49.170 回答
0

如果您在事件处理程序中执行 return false ,那么它将取消浏览器的行为。根据浏览器的不同,它的行为可能会有所不同(例如,在按键取消后,keypress 仍会在 firefox 上触发,而 IE 将停止它)。

于 2009-10-30T20:48:05.147 回答