Web浏览器无法捕获Windows键快捷方式。例如,Windows键+ D显示桌面。
但是,在浏览器中,JS只能检测Windows键的keydown事件,但无法捕获D的键盘事件或Windows键的键盘事件。
背后的深层原因是什么?有没有解释它的文件?
答案 0 :(得分:0)
不是一个理想的答案,但您可能需要编辑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>
答案 1 :(得分:0)
Windows + D由操作系统捕获,不会转发到浏览器。可能的解决方法是使用Ctrl + Windows + D来模拟Windows + D.