Web瀏覽器無法捕獲Windows快捷鍵。例如,Windows鍵+ D顯示桌面。Web瀏覽器無法捕獲Windows鍵+ D,爲什麼?
但是,在瀏覽器中,JS只能檢測到Windows鍵的keydown事件,但無法捕獲D的鍵盤事件或windows鍵的keyup事件。
它背後的深層原因是什麼?有沒有解釋它的文件?
Web瀏覽器無法捕獲Windows快捷鍵。例如,Windows鍵+ D顯示桌面。Web瀏覽器無法捕獲Windows鍵+ D,爲什麼?
但是,在瀏覽器中,JS只能檢測到Windows鍵的keydown事件,但無法捕獲D的鍵盤事件或windows鍵的keyup事件。
它背後的深層原因是什麼?有沒有解釋它的文件?
不是一個理想的答案,但您可能需要編輯Windows註冊表以使其發生。
var log = $('#log')[0],
pressedKeys = [];
var prevKey;
$(document.body).keydown(function (evt) {
var li = pressedKeys[evt.keyCode];
if (!li) {
li = log.appendChild(document.createElement('li'));
pressedKeys[evt.keyCode] = li;
}
$(li).text('Down: ' + evt.keyCode);
$(li).removeClass('key-up');
if(prevKey){
if(prevKey === 91 && evt.keyCode === 68){
evt.stopPropagation();
}
}
});
$(document.body).keyup(function (evt) {
var li = pressedKeys[evt.keyCode];
if (!li) {
li = log.appendChild(document.createElement('li'));
}
$(li).text('Up: ' + evt.keyCode);
$(li).addClass('key-up');
});
.key-up {
opacity: 0.5;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="log">
<li>List of keys:</li>
</ul>
視窗+ d是由OS捕獲,並且不轉發給瀏覽器。可能的解決方法是使用Ctrl + Windows + D來模擬Windows + D。
我認爲Windows熱鍵不會轉發給瀏覽器。它將在覈心處理 – 2015-02-09 07:06:22
Mac上的Windows Key如何? – Justinas 2015-02-09 07:09:10
Mac上的Windows鍵是我的命令。 – steviesama 2017-09-05 20:42:36