JS禁止浏览器后退键

当键盘敲下后退键(Backspace)后  

1、禁止浏览器自动后退

 2、但不影响密码、单行文本、多行文本输入框等的回退操作 

//方法一:
////当键盘敲下后退键(Backspace)后 
//1、禁止浏览器自动后退 
//2、但不影响密码、单行文本、多行文本输入框等的回退操作
//window.onload = function () {
//    /**************************** 
//     * 作者:q821424508@sina.com   * 
//     * 时间:2012-08-20            * 
//     * version:2.1              * 
//     *                          * 
//     ****************************/
//    document.getElementsByTagName("body")[0].onkeydown = function () {

//        //获取事件对象  
//        var elem = event.relatedTarget || event.srcElement || event.target || event.currentTarget;

//        if (event.keyCode == 8) {//判断按键为backSpace键  

//            //获取按键按下时光标做指向的element  
//            var elem = event.srcElement || event.currentTarget;

//            //判断是否需要阻止按下键盘的事件默认传递  
//            var name = elem.nodeName;

//            if (name != 'INPUT' && name != 'TEXTAREA') {
//                return _stopIt(event);
//            }
//            var type_e = elem.type.toUpperCase();
//            if (name == 'INPUT' && (type_e != 'TEXT' && type_e != 'TEXTAREA' && type_e != 'PASSWORD' && type_e != 'FILE')) {
//                return _stopIt(event);
//            }
//            if (name == 'INPUT' && (elem.readOnly == true || elem.disabled == true)) {
//                return _stopIt(event);
//            }
//        }
//    }
//}


//function _stopIt(e) {
//    if (e.returnValue) {
//        e.returnValue = false;
//    }
//    if (e.preventDefault) {
//        e.preventDefault();
//    }

//    return false;
//}


//方法二:
////当键盘敲下后退键(Backspace)后 
//1、禁止浏览器自动后退 
//2、但不影响密码、单行文本、多行文本输入框等的回退操作

//处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外 
//function banBackSpace(e) {
//    var ev = e || window.event;//获取event对象 
//    var obj = ev.target || ev.srcElement;//获取事件源 

//    var t = obj.type || obj.getAttribute('type');//获取事件源类型 

//    //获取作为判断条件的事件类型 
//    var vReadOnly = obj.getAttribute('readonly');
//    var vEnabled = obj.getAttribute('enabled');
//    //处理null值情况 
//    vReadOnly = (vReadOnly == null) ? false : vReadOnly;
//    vEnabled = (vEnabled == null) ? true : vEnabled;

//    //当敲Backspace键时,事件源类型为密码或单行、多行文本的, 
//    //并且readonly属性为true或enabled属性为false的,则退格键失效 
//    var flag1 = (ev.keyCode == 8 && (t == "password" || t == "text" || t == "textarea")
//    && (vReadOnly == true || vEnabled != true)) ? true : false;

//    //当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效 
//    var flag2 = (ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")
//    ? true : false;

//    //判断 
//    if (flag2) {
//        return false;
//    }
//    if (flag1) {
//        return false;
//    }
//}

////禁止后退键 作用于Firefox、Opera 
//document.onkeypress = banBackSpace;
////禁止后退键 作用于IE、Chrome 
//document.onkeydown = banBackSpace;




//方法三:
////当键盘敲下后退键(Backspace)后 
//1、禁止浏览器自动后退 
//2、但不影响密码、单行文本、多行文本输入框等的回退操作

//处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外 

//<script language="javascript">        
//    javascript:window.history.forward(1); 
//</script>      
View Code

 

最佳方案为方法二,方法一在Chrome和IE下通过在Firefox下不通过。

 

内容全部来源他处:

http://volunteer521.iteye.com/blog/830522/

等等。

posted @ 2015-08-18 15:01  大漠孤烟~  阅读(743)  评论(0编辑  收藏  举报