如何屏蔽backspace键盘事件返回上一页功能?

支持所有主浏览器的解决方案
备注:实现结果:屏蔽的window的backspace键盘事件,允许input的backspace键盘事件。
需求:我在做一个可视化编辑器,当按下backspace键的时候,需要删除操作区域的某个div块。
目前遇到的问题:当按下backspace键后,就会返回到另一个界面。

阅读 5.3k
2 个回答

额,那就贴干货吧。

//禁用Backspace键
disBackspace: function(){
    var keyCode,target;
    document.onkeydown = keydown;
    function keydown(e){
        e = e || window.event;
        keyCode = e.keyCode || e.which,
        target = e.srcElement || e.target;
        //只有当前对象为text、textarea、password并且只是可读状态时才禁用返回键
        if (
            keyCode === 8 &&
            (
            target.type === "text" ||
            target.type === "textarea" ||
            target.type === "password"
            ) &&
            target.readOnly === true
        ){
            keyCode = 0;
            e.returnValue = false;
            return false;
        }
    }
}

onkeyDown的时候检测keyCode是不是等于8即可,如果相等的话,那么就给一个提示或者给一个其他什么操作,这样或许就可以解决你的问题了。

推荐问题