在浏览器中禁用退格导航

Ste*_*ven 0 javascript

有谁知道如何禁用使用键盘上的“退格”键导航到上一页的功能?

现在,我有一个发票类型的 Web 应用程序,如果用户(在 Mac 上)按退格键删除表单字段中的元素,在到达输入项目的末尾后,如果他们再次按退格键,它会移动到先前浏览的页面,使他们丢失输入的应用程序的数据。

Sam*_*Sam 7

window.onkeydown = function(e) {
  if (e.keyCode == 8 && e.target == document.body)
    e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)

说明:退格键的键码为 8。调用“preventDefault”意味着该事件不会导致按下退格键的默认行为(即导航回页面)。仅当事件的目标是文档正文时才会发生此行为。

编辑:jsfiddle 示例

  • 这会干扰文本框中的退格。我对这个问题的理解是,Steven 只是试图防止退格键被用于在页面堆栈中向后导航,但应该允许退格键的其他用途。 (2认同)