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 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记5 js语句
Oct 11 Javascript
火狐下input焦点无法重复获取问题的解决方法
Jun 16 Javascript
常见的jQuery选择器汇总
Nov 24 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
Oct 23 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
Oct 24 Javascript
利用CSS3在Angular中实现动画
Jan 15 Javascript
AngularJs Managing Service Dependencies详解
Sep 02 Javascript
微信小程序 rpx 尺寸单位详细介绍
Oct 13 Javascript
JavaScript获取URL参数的方法之一
Mar 24 Javascript
vue控制多行文字展开收起的实现示例
Oct 11 Javascript
修改vue源码实现动态路由缓存的方法
Jan 21 Javascript
javascript实现移动端上传图片功能
Aug 18 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 COOKIE及时生效的方法介绍
2014/02/14 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
python命令行参数sys.argv使用示例
2014/01/28 Python
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
提升Python程序性能的7个习惯
2019/04/14 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
python中get和post有什么区别
2020/06/19 Python
Django Form设置文本框为readonly操作
2020/07/03 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
工程项目经理岗位职责
2013/12/15 职场文书
《乌塔》教学反思
2014/02/17 职场文书
开业庆典主持词
2014/03/21 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
九年级历史教学反思
2016/02/19 职场文书
5行Python代码实现一键批量扣图
2021/06/29 Python
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技