я получил новое требование в проекте, который мы должны предотвратить альт + вкладки горячие клавиши Windows', чтобы предотвратить переключение между окнами ,JavaScript `event.preventDefault()` бесполезен для `Alt + tab` в Windows,
После долгих усилий, я могу предотвратить альт, Ctrl, вкладку, сдвиг, Ctrl + s, Ctrl + с, Ctrl + v и т. д., но я не могу предотвратить alt + tab, будь то Firefox или Chrome.
Я искал в MDN и, наконец, нашел это: prevent the default action of the corresponding key down event in Chrome
Так что я думаю, что альт + вкладка горячая клавиша системы Windows, а не браузера. И event.preventDefault()
может только предотвращать события, соответствующие браузеру.
Кто-нибудь есть более подробное объяснение
Ниже мой код:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
document.addEventListener("keydown", function(e) {
//tab keyCode===9
//I hope to prevent alt+tab event action in windows
if (e.altKey && e.keyCode === 9) {
e.preventDefault(); //why not come in?
}
}, false)
</script>
</body>
</html>
Вероятно похожи на CRTL + S в JSFiddle отображается всплывающими окнами в светлячок о спасении страница. –
@ JefréN. Я могу предотвратить CTRL + S сейчас, но не Alt + Tab – PageYe
Во-первых, я бы поставил под сомнение ваше влияние на удобство использования здесь, учитывая, что это ярлык уровня операционной системы, и ожидается, что пользователь продолжит работу. Поскольку таковая alt + tab рассматривается ОС до того, как она будет передана браузеру, вы не увидите нажатия клавиши «tab», если «alt» также удерживается нажатой. Короче говоря, задайте этот вопрос и не пытайтесь смириться с ярлыками уровня ОС;). – Dymos