Web ブラウザが Windows キーのショートカットをキャプチャできません。たとえば、Windows キー + D でデスクトップが表示されます。
ただし、ブラウザーでは、JS は Windows キーのキーダウン イベントしか検出できず、D のキーボード イベントや Windows キーのキーアップ イベントをキャプチャできません。
その背後にある深い理由は何ですか?それを説明する文書はありますか?
Web ブラウザが Windows キーのショートカットをキャプチャできません。たとえば、Windows キー + D でデスクトップが表示されます。
ただし、ブラウザーでは、JS は Windows キーのキーダウン イベントしか検出できず、D のキーボード イベントや Windows キーのキーアップ イベントをキャプチャできません。
その背後にある深い理由は何ですか?それを説明する文書はありますか?
理想的な答えではありませんが、これを行うには 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>