Javascript 如何防止键入事件侦听器在输入文本字段时侦听?

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

这是我对reddit的附加代码。它帮助我浏览得更快。这个想法基于4chan的键盘快捷键N键表示下一页,B键表示上一页

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”)
来进一步缩短它。