HTML\Javascript-获取ATL\CTRL\SHIFT键

HTML\Javascript-获取ATL\CTRL\SHIFT键,javascript,Javascript,有能力捕捉任何按键吗?i、 e.按住Ctrl+Shift+Alt键(无其他按键) 在下面的代码片段中(在Chrome下选中),我只能在按下其他“常规”键时捕捉移位 更新: <html> <head> <script> function onKeyPressed(event) { event = event || window.event; var code = event.keyCode;

有能力捕捉任何按键吗?i、 e.按住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>

功能ON键按下(事件){
event=event | | window.event;
var代码=event.keyCode;
var key=String.fromCharCode(event.keyCode);
var shift=event.shiftKey;
var alt=event.altKey;
var ctrl=event.ctrlKey;
var which=事件。which;
var str=“code=”+code+“\n”+
“key=“+key+”\n”+
“shift=“+shift+”\n”+
“alt=“+alt+”\n”+
“ctrl=“+ctrl+”\n”+
“which=“+which;
警报(str);
};
函数onClick(事件){
event=event | | window.event;
var x=event.clientX;
var y=event.clientY;
var str=“x=”+x+“\n”+
“y=”+y;
警报(str);
};
函数onKeyUp(事件){
警报(“onKeyUp”);
};
函数onKeyDown(事件){
警报(“onKeyDown”);
}

如何捕获这些密钥?

是否允许jQuery?如果是这样,请查看以下内容:


否则,您可能会给@Max Gherkins一个机会,如果您必须使用keyup或keydown事件来捕获移位,则keyPress不会捕获移位。如果需要更多详细信息,请签出每个事件捕获的密钥。由于shift是一个修改键,因此不会捕获它。我无法解释为什么会出现这种情况。

有一个非常好的新JS库,它在跟踪浏览器中的键盘事件方面做得非常好

它叫捕鼠器。以下是链接:


希望这能有所帮助。

如果(event.keyCode==x)其中x是shift/ctrl/alt的关键代码,这不就是
吗?还有另一个jQuery解决方案,我不想用它去寻找下一个投票:)哦,对不起,是jQuery特有的。不过,很容易适应,我认为jQuery的唯一方面是挂钩事件,这很容易修改。我喜欢这个想法!:)谢谢,但我正在寻找一种本土的方法来实现它。好的@MrRoth-看看craig.is/killing/mices,它会为你带来好处的!:)再次感谢你!!:)但我不想使用图书馆,我想自己写一本。那么,不对代码进行反向工程的诀窍是什么呢?请参阅我的更新。我已经包括了
onkeydown
onkeydup
处理程序,尽管按下键时只调用
onkeydown