zoukankan      html  css  js  c++  java
  • 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/

    等等。

  • 相关阅读:
    从上亿数据中抽取千万数据只需10分钟内
    当硬件成为瓶颈时怎么提高数据仓库的加载?
    监控logshipping 流量
    MSSQLMiRROR
    读取STGMEDIUM中的数据
    一个基本算法题暴露出来的C++基础不扎实
    C++对象模型学习
    从微观看chrome 之一:Singleton<T> 范型类
    从微观看chrome 之二:围绕Profile的ProfileService系统
    DevC++配置问题
  • 原文地址:https://www.cnblogs.com/denghuachengle/p/4739436.html
Copyright © 2011-2022 走看看