javascript 中的 CTRL 键检查右 ALT
CTRL key check for right ALT in javascript
我有这样简单的代码:
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,我尝试通过添加 global 来修复它变量 ctrl 并在 keydown 上将其设置为 true 并在 keyup 上设置为 false 但这并没有解决它,因为当你按下右 alt keydown 时 CTRL 被触发并且 keyup 相同。
这是一个错误还是某个地方的规范?
有没有办法知道是否在没有 Ctrl 键的情况下按下了左 alt?
右Alt,通常是Alt Gr,确实相当于Ctrl+Alt。我不知道为什么,但确实如此。
所以从中得到Ctrl键和Alt键是正常的
我有这样简单的代码:
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,我尝试通过添加 global 来修复它变量 ctrl 并在 keydown 上将其设置为 true 并在 keyup 上设置为 false 但这并没有解决它,因为当你按下右 alt keydown 时 CTRL 被触发并且 keyup 相同。
这是一个错误还是某个地方的规范?
有没有办法知道是否在没有 Ctrl 键的情况下按下了左 alt?
右Alt,通常是Alt Gr,确实相当于Ctrl+Alt。我不知道为什么,但确实如此。
所以从中得到Ctrl键和Alt键是正常的