是否有人知道如何禁用使用键盘上的“退格”键导航到您所在的上一页?
现在,我有一个发票类型的网络应用程序,如果用户(在Mac上)点击退格键移除表单字段中的元素,在到达输入项目的末尾后,如果他们再次点击退格键,它移动到之前浏览的页面,使它们丢失了输入的应用程序的数据。
答案 0 :(得分:0)
@Sam答案的缺点是,如果您单击HTML元素(例如表格),则Backspace键仍会使您返回。仅当您单击没有任何HTML元素的“空白区域”时,此方法才有效。
我调整了Sam的答案,并从this answer中获取了代码以创建此解决方案。它并不能涵盖所有的极端情况,但是对于我的用例来说已经足够了。
function disableBackspaceNavigation() {
window.onkeydown = function(e) {
if (e.keyCode == 8 && !isTextBox(e.target)) e.preventDefault();
}
}
function isTextBox(element) {
var tagName = element.tagName.toLowerCase();
if (tagName !== "input") return false;
var typeAttr = element.getAttribute('type').toLowerCase();
return typeAttr === 'text';
}