У меня есть простой код, как это:CTRL проверить ключ для правой ALT в 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 при нажатии правого альта e.ctrlKey
является set to true, я пытаюсь исправить это, добавив глобальную переменную ctrl и установив ее в true при keydown и установив false на keyup, но это не исправить, потому что когда вы нажимаете right alt keydown для CTRL уволен и то же самое для keyup.
Это ошибка или это где-то в спецификации?
Есть ли способ узнать, был ли нажат левый Alt без Ctrl ключ?
Спасибо за разъяснение. Я только что протестировал это на другом ноутбуке, у которого нет Alt Gr и просто Alt на клавиатуре, и он отправляет один keydown/keyup для правого alt. – jcubic