3

是否有能力捕捉任何按键?即Ctrl+ Shift+Alt按键(没有其他按键)。

在下面的代码片段中(在 Chrome 下检查),我只能在按下其他“常规”键时捕获转变。

更新

<html>
<head>
    <script>
        function onKeyPressed(event) {
            event = event || window.event;
            var code = event.keyCode;
            var key = String.fromCharCode(event.keyCode);
            var shift = event.shiftKey;
            var alt = event.altKey;
            var ctrl = event.ctrlKey;
            var which = event.which;
            var str = "code = " + code + "\n" +
                      "key = " + key + "\n" +
                      "shift = " + shift + "\n" +
                      "alt = " + alt + "\n" +
                      "ctrl = " + ctrl + "\n" +
                      "which = " + which;
            alert(str);
        };

        function onClick(event) {
            event = event || window.event;
            var x = event.clientX;
            var y = event.clientY;
            var str = "x = " + x + "\n" +
                      "y = " + y;
            alert(str);
        };

        function onKeyUp(event) {
            alert("onKeyUp");
        };

        function onKeyDown(event) {
            alert("onKeyDown");
        }
    </script>
</head>
<body onmousedown="onClick(event)" onkeypress="onKeyPressed(event)" onkeyup="onKeyUp(event)" onkeydown="onKeyDown(event)"></body>
</html>

如何捕获这些密钥?

4

3 回答 3

4

有一个非常好的新 JS 库,它可以很好地跟踪浏览器中的键盘事件。

它叫捕鼠器。这是链接:http ://craig.is/killing/mice

希望有帮助。

于 2012-07-26T21:22:13.147 回答
2

允许使用 jQuery 吗?如果是这样,看看这个:

http://www.stepanreznikov.com/js-shortcuts/

否则你可以给@Max Gherkins 的建议一个机会

于 2012-07-26T21:13:23.660 回答
2

AFAIK 您必须使用 keyup 或 keydown 事件来捕获移位,keyPress 不会捕获它。如果您需要更多详细信息,请查看每个事件捕获的密钥列表。由于 shift 是修饰键,因此不会被捕获。为什么会这样,我无法解释。

于 2012-07-26T21:19:08.687 回答