我有一个webapp它使用退格键来达到自己的目的。我长期以来一直在 document.keyup
上调用以下函数,该函数多年来一直没有问题:
function keyupKeys (evt) {
if(this.activeElement.id == 'q') return true; //ignore input to the search box
if(!evt) var evt = window.event;
var code = evt.keyCode;
//handle special keys:
switch(code) {
case 9: // tab
case 39: // right arrow
press('colon'); break;
case 37: // left arrow
press('colon');
press('colon'); break;
case 13: // enter
press('eq'); break;
case 8: // backspace
press('bs'); break;
case 46: // delete
case 144:// numpad clear
press('c'); break;
case 27: // esc
press('ac'); break;
default: // Not a key this function handles
return true;
}
return false;
};
最近,我发现 Windows 中的 Chrome 和 Linux 上的 Chromium 在按下退格键时开始向后导航。过去并非如此。我还没有测试过其他浏览器。
关于SO的相关问题促使我修改退格键的大小写:
case 8: // backspace
if(evt.preventDefault) evt.preventDefault();
press('bs'); break;
然而,这一改变并没有产生任何效果。此外,由于浏览器正在向后导航,我无法使用 Javascript 控制台中的任何调试工具,因此我不知道发生了什么。
谁能解释一下发生了什么并提出解决方法?
最佳答案
您应该监听 keydown
事件,而不是 keyup
事件。
关于javascript - 需要调试帮助 : Prevent backspace from navigating back,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32029974/