如何仅防止页面上按键的特定默认操作?

How do I prevent only specific default actions of key press on a page?

我只想阻止网页上的某些按键操作。特别是退格键。通常,我会做这样的事情:

function keyPress(ev) {
    if(ev.keyCode === 8) {  
        ev.preventDefault();
    }
    // do cool stuff here
}

$(document).keydown(keyPress);

该代码阻止退格键执行的所有默认操作。我想阻止它导航到最后一页,但我想允许它删除文本字段中的字符。如何只防止导航而不防止文本操作?

对于您提到的特定情况,您可以只检查用户是否聚焦了文本字段,如果是,则不阻止默认。

function keyPress(ev) {
   var targetElTag = document.activeElement.tagName;
   if (ev.keyCode === 8 && targetElTag !== 'TEXTAREA') {
      ev.preventDefault();
   }
}

您还希望包括您希望退格键起作用的任何其他可聚焦元素。