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 相关文章推荐
Sample script that deletes a SQL Server database
Jun 16 Javascript
javascript初学者常用技巧
Sep 02 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
Aug 29 Javascript
前端开发必知的15个jQuery小技巧
Jan 22 Javascript
AngularJS使用拦截器实现的loading功能完整实例
May 17 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
webpack4 处理CSS的方法示例
Sep 03 Javascript
Vue中的Props(不可变状态)
Sep 29 Javascript
在微信小程序中保存网络图片
Feb 12 Javascript
微信小程序使用echarts获取数据并生成折线图
Oct 16 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
Apr 30 jQuery
elementui实现预览图片组件二次封装
Dec 29 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版微信小店调用api示例代码
2016/11/12 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
2013/12/31 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
Javascript中Array用法实例分析
2015/06/13 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
Vue异步组件使用详解
2017/04/08 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
python创建进程fork用法
2015/06/04 Python
python hook监听事件详解
2018/10/25 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
python中什么是面向对象
2020/06/11 Python
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
酒吧员工的岗位职责
2013/11/26 职场文书
入党积极分子介绍信
2014/01/17 职场文书
大学生个人事迹材料
2014/01/21 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
无私奉献演讲稿
2014/09/04 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
2014年外联部工作总结
2014/11/17 职场文书
医院营销工作计划
2015/01/16 职场文书
学习保证书
2015/01/17 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
高中开学感言
2015/08/01 职场文书
用Python selenium实现淘宝抢单机器人
2021/06/18 Python
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python