我有这样的简单代码:
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>
在 google chrome 中,与 Firefox 和 IE10 中相同,当您按右 alt 时,e.ctrlKey
设置为 true,我尝试通过添加全局变量 ctrl 并设置它来修复它在 keydown 上设置为 true 并在 keyup 上设置为 false 但这并没有解决问题,因为当您按 CTRL 的右 alt keydown 时会被触发,对于 keyup 也是如此。
这是一个错误还是在某个规范中?
有没有办法知道是否在没有 Ctrl 键的情况下按下了左 alt?
最佳答案
右Alt,通常是Alt Gr,实际上相当于Ctrl+Alt。我不知道为什么,但确实如此。
所以从中获取Ctrl键和Alt键是正常的。
关于javascript - CTRL 键检查 javascript 中的右 ALT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41678553/