Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
来源: 阅读:894 次 日期:2016-06-18 14:34:44
温馨提示: 小编为您整理了“Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享”,方便广大网友查阅!

在 Extjs 开发中,我们需要屏蔽一些键盘按键,来避免用户在使用键盘操作的过程中不小心按到这些快捷键造成输入信息丢失等问题.

代码如下:

Ext.onReady(function(){    

      Ext.WindowMgr.zseed = 10000;  

      Ext.QuickTips.init();   

      Ext.getDoc().on("contextmenu", function(e){    

        e.stopEvent();    

      });   

      if(document.addEventListener){  

        document.addEventListener("keydown",maskBackspace, true);  

      }else{  

        document.attachEvent("onkeydown",maskBackspace);  

      }  

      function maskBackspace(event){  

        var event = event || window.event; //标准化事件对象  

        var obj = event.target || event.srcElement;  

        var keyCode = event.keyCode ? event.keyCode : event.which ?  

            event.which : event.charCode;  

        if(keyCode == 8){  

          if(obj!=null && obj.tagName!=null && (obj.tagName.toLowerCase() == "input"  

              || obj.tagName.toLowerCase() == "textarea")){  

            event.returnValue = true ;  

            if(Ext.getCmp(obj.id)){  

              if(Ext.getCmp(obj.id).readOnly) {  

                if(window.event)  

                  event.returnValue = false ; //or event.keyCode=0  

                else 

                  event.preventDefault();  //for ff  

              }  

            }  

          }else{  

            if(window.event)  

              event.returnValue = false ;  // or event.keyCode=0  

            else 

              event.preventDefault();  //for ff  

          }  

        }  

      }  

      var map = new Ext.KeyMap(document, [  

      {  

        key: [116], // F5  

        fn: function(){ },  

        stopEvent: true,  

        scope: this 

      },{  

        key: [37,39,115], //方向键左,右,F4  

        alt: true,  

        fn: function(){ },  

        stopEvent: true,  

        scope: this 

      }, {  

        key: [82], // ctrl + R  

        ctrl: true,  

        fn: function(){ },  

        stopEvent: true,  

        scope: this 

      }]);  

      map.enable();  

});  

禁止在IE8中使用 F5 刷新还需加上代码 :

代码如下:

<body onkeydown="if(event.keyCode==116){event.keyCode=0;return false;}">  

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map