我有一个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 - 所需的调试帮助:防止退格键向后导航,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32029974/

10-10 01:28