我有这样简单的代码:
var input = document.getElementsByTagName('input')[0];
var pre = document.getElementsByTagName('pre')[0];
var ctrl = false;
input.addEventListener('keydown', function(e) {
if (e.which == 17) {
ctrl = true;
}
pre.innerHTML += 'keydown: ' + JSON.stringify({
location: e.location,
ctrlKey: ctrl,
altKey: e.altKey,
which: e.which
}) + '\n';
});
input.addEventListener('keyup', function(e) {
if (e.which == 17) {
ctrl = false;
}
pre.innerHTML += 'keyup: ' + JSON.stringify({
location: e.location,
ctrlKey: ctrl,
altKey: e.altKey,
which: e.which
}) + '\n';
});

<input>
<pre>
</pre>
&#13;
在谷歌浏览器中,与Firefox和IE10相同,当您按下右键时e.ctrlKey
设置为true,我尝试通过添加全局变量ctrl来修复它并将其设置为true keydown并在keyup上设置为false,但是没有修复它,因为当你按下右键时,键盘为 CTRL 被触发,而keyup则相同。
这是一个错误还是在某个规范中?
有没有办法知道是否在没有 Ctrl 键的情况下按下了alt alt?
答案 0 :(得分:1)
右 Alt ,通常是 Alt Gr ,确实相当于 Ctrl + Alt 。我不知道为什么,但确实如此。
因此从它获取 Ctrl Key和 Alt 键是正常的。