Javascript 如何防止键入事件侦听器在输入文本字段时侦听?
这是我对reddit的附加代码。它帮助我浏览得更快。这个想法基于4chan的键盘快捷键N键表示下一页,B键表示上一页Javascript 如何防止键入事件侦听器在输入文本字段时侦听?,javascript,Javascript,这是我对reddit的附加代码。它帮助我浏览得更快。这个想法基于4chan的键盘快捷键N键表示下一页,B键表示上一页 window.addEventListener("keydown", checkKeyPressed, false); function checkKeyPressed(e){ switch(e.keyCode){ case 66: window.location = document.querySelector('a[rel="n
window.addEventListener("keydown", checkKeyPressed, false);
function checkKeyPressed(e){
switch(e.keyCode){
case 66:
window.location = document.querySelector('a[rel="nofollow prev"]').href;
break;
case 78:
window.location = document.querySelector('a[rel="nofollow next"]').href;
break;
default:
}
}
我的问题是,当我在文本字段中键入包含“n”或“b”的单词时,也会发生此事件。当我聚焦到文本字段时,如何防止它发生?如所述:我不确定您是否也想检测文本区域,如果您需要此类情况的支持,您应该进一步增强代码
window.addEventListener("keydown", checkKeyPressed, false);
function checkKeyPressed(e){
var elem = e.target;
var type = elem.getAttribute("type");
if(type!='text'){
switch(e.keyCode){
case 66:
//window.location = document.querySelector('a[rel="nofollow prev"]').href;
alert("case 66");
break;
case 78:
//window.location = document.querySelector('a[rel="nofollow next"]').href;
alert("case 78");
break;
default:
}
}
}
正如所指出的:我不确定你是否还想检测文本区域的,如果你需要这种情况下的支持,你应该进一步增强代码
window.addEventListener("keydown", checkKeyPressed, false);
function checkKeyPressed(e){
var elem = e.target;
var type = elem.getAttribute("type");
if(type!='text'){
switch(e.keyCode){
case 66:
//window.location = document.querySelector('a[rel="nofollow prev"]').href;
alert("case 66");
break;
case 78:
//window.location = document.querySelector('a[rel="nofollow next"]').href;
alert("case 78");
break;
default:
}
}
}
您还可以在要忽略的元素上放置一个类并检查e.target.className。您还可以在要忽略的元素上放置一个类并检查e.target.className.Works。非常感谢。通过不放置var,而是键入
type=e.target.getAttribute(“type”)
来进一步缩短它。工作起来很有魅力。非常感谢。通过不放置var,而是键入type=e.target.getAttribute(“type”)
来进一步缩短它。