Событие нажатия клавиши альт срабатывает только один раз, но при клике правой кнопкой мыши в рабочей области снова срабатывает один раз...
document.addEventListener('keydown',witch_key_down);
document.addEventListener('keyup',witch_key_up);
function witch_key_down(e){
if (event.keyCode=='18') window.alt=true;
document.getElementById('output').innerHTML=window.alt;
}
function witch_key_up(e){
window.alt=false;
document.getElementById('output').innerHTML=window.alt;
}
<div id="output">false</div>
Думаю проблема тут не в самом Javascript, а в самом нажатии на Alt. Потому что когда человек в браузере (как и в большинстве программ) нажимает просто Alt, то он попадает на меню браузера (и если нажать например стрелку ↓, то оно появится):
То есть, в итоге, все работает, но в сочетании с Alt, скорее всего, лучше работать одновременно с другими клавишами.
P.S. служебные клавиши можно проверять не по номеру keyCode, а вот так:
event.ctrlKey, event.altKey, event.shiftKey, event.metaKey
Сборка персонального компьютера от Artline: умный выбор для современных пользователей