Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享


Posted in Javascript onJune 07, 2016

在 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;}">
Javascript 相关文章推荐
jquery focus(fn),blur(fn)方法实例代码
Dec 16 Javascript
Javascript 加载和执行-性能提高篇
Dec 28 Javascript
网页中返回顶部代码(多种方法)另附注释说明
Apr 24 Javascript
jquery的ajax跨域请求原理和示例
May 08 Javascript
解析JavaScript的ES6版本中的解构赋值
Jul 28 Javascript
前端jquery部分很精彩
May 03 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
Nov 28 Javascript
ajax级联菜单实现方法实例分析
Nov 28 Javascript
Element UI 自定义正则表达式验证方法
Sep 04 Javascript
详解小程序退出页面时清除定时器
Apr 28 Javascript
150行Node.js实现的dns代理工具
Aug 02 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
May 23 Javascript
JavaScript基础语法之js表达式
Jun 07 #Javascript
JavaScript必看小技巧(必看)
Jun 07 #Javascript
通过正则表达式获取url中参数的简单实现
Jun 07 #Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
Jun 07 #Javascript
javascript显示倒计时控制按钮的简单实现
Jun 07 #Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
Jun 07 #Javascript
jQuery原理系列-css选择器的简单实现
Jun 07 #Javascript
You might like
PHP编程风格规范分享
2014/01/15 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
PHP生成随机密码类分享
2014/06/25 PHP
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
vue-cli的eslint相关用法
2017/09/29 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
python3.0 字典key排序
2008/12/24 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
2015/04/24 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
Python3实现统计单词表中每个字母出现频率的方法示例
2019/01/28 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
总经理岗位职责范本
2014/02/02 职场文书
师德师风建设方案
2014/05/08 职场文书
经济国贸专业求职信
2014/06/18 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
2015年复活节活动总结
2015/02/27 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers