如何在jQuery中检测按键而不考虑布局



因此,基本上我正在尝试将点击链接连接到Tampermonkey中的键。首先我尝试了e.which,但它不适用于不同的布局。然后我尝试了e.code,但由于某种原因,它只检测到按下B键(见下面的代码(。我做错了什么?

$(document).on("keypress", function (e) {
if(e.сode == "KeyN") {
document.getElementById("nextimage").click();
} else if(e.code == "KeyB") {
document.getElementById("previmage").click();
}
});

您可以尝试使用KEY本身而不是代码。toUpperCase((函数将检测小写或大写:

$(document).on("keypress", function (e) {
if(e.key.toUpperCase() == "N") {
alert("yay!")
} else if(e.key.toUpperCase() == "B") {
alert("nay");
}
});

以下是不同钥匙代码的参考:https://keycode.info/

尝试这样读取密钥。

请确保您有JQuery引用。

$(document).keypress(function(event) {
alert('You pressed - ' + event.key.toUpperCase());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

这里是javascript的情况:

const myText = document.getElementById('myText');
document.addEventListener('keypress', logKey);
function logKey(e) {
myText.textContent += e.key.toUpperCase();
if(e.key.toUpperCase() == 'N')
alert("You Pressed N  key");
}

<p id="myText"></p>

最新更新