IE浏览器,非输入框处按backspace键, 浏览器默认回退。
其他浏览器,像chrome, 浏览器本身禁用backspace回退功能。
全局使用:
main.js 或app.vue中:
mounted() {
document.onkeypress = this.banBackSpace;
document.onkeydown = this.banBackSpace;
},
methods: {
banBackSpace(e) {
function stopIt(ev) {
if (ev.preventDefault) {
ev.preventDefault();//preventDefault()方法阻止元素发生默认的行为
}
if (ev.returnValue) {
//IE浏览器下用window.event.returnValue = false;实现阻止元素发生默认的行为
ev.returnValue = false;
}
return false;
}
var ev = e || window.event;
//各种浏览器下获取事件对象
var obj = ev.relatedTarget || ev.srcElement || ev.target || ev.currentTarget;
//按下Backspace键
if (ev.keyCode == 8) {
var tagName = obj.nodeName //标签名称
if (tagName != 'INPUT' && tagName != 'TEXTAREA') {
return stopIt(ev);
}
var tagType = obj.type.toUpperCase();//标签类型
if (tagName == 'INPUT' && (tagType != 'TEXT' && tagType != 'TEXTAREA' && tagType != 'PASSWORD')) {
return stopIt(ev);
}
if ((tagName == 'INPUT' || tagName == 'TEXTAREA') && (obj.readOnly == true || obj.disabled == true)) {
return stopIt(ev);
}
}
},