我在检测是否按下[shiftkey]时遇到了一些问题,因为它总是被改变。
如您所见,现在va
attribut具有MouseEvents。
function createInfobar(elem, event) {
if( event.va.shiftKey ){//...}
}
上面的代码以上工作得很好。但随后它开始将事件检测为undefined
。然后我改为event.xa.shiftkey
并且它起作用了。
现在,检查控制台上的event
,它再次VA.ShitfKey
......
我该如何解决?有没有办法在所有浏览器中使用它?
答案 0 :(得分:0)
尝试以下代码
function isKeyPressed(event) {
var x = document.getElementById("out");
if (event.shiftKey) {
x.innerHTML = "The SHIFT pressed!";
} else {
x.innerHTML = "The SHIFT NOT pressed!";
}
}

<input type="text" onkeydown="isKeyPressed(event)">
<p id="out"></p>
&#13;
答案 1 :(得分:0)
试试这个
document.addEventListener("keydown", function(event) {
if (event.shiftKey) {
console.log("shift key")
} else {
console.log("some other key")
}
});
<p id="result"></p>
答案 2 :(得分:0)
这是一个捕捉密钥的工作片段。 KEYDOWN。
请务必先点击该代码段,以便接收键盘输入。
let elshift = document.querySelector(".shift-pressed");
document.addEventListener("keydown", function (ev) {
if (ev.key === "Shift")
elshift.innerText = "Shift DOWN";
});
document.addEventListener("keyup", function (ev) {
if (ev.key === "Shift")
elshift.innerText = "Shift UP";
});
&#13;
<div class="shift-pressed">
Please note click this first to make snippet have focus..
</div>
&#13;