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 相关文章推荐
用html5 js实现点击一个按钮达到浏览器全屏效果
May 28 Javascript
jquery实现html页面 div 假分页有原理有代码
Sep 06 Javascript
分享我对JS插件开发的一些感想和心得
Feb 04 Javascript
JavaScript制作简单的日历效果
Mar 10 Javascript
jQuery实现的浮动层div浏览器居中显示效果
Feb 03 Javascript
浅谈Koa服务限流方法实践
Oct 23 Javascript
javascript性能优化之分时函数的介绍
Mar 28 Javascript
Vue中$refs的用法详解
Jun 24 Javascript
js实现敏感词过滤算法及实现逻辑
Jul 24 Javascript
Vue.js中Line第三方登录api的实现代码
Jun 29 Javascript
js在HTML的三种引用方式详解
Aug 29 Javascript
JavaScript构造函数原理及实现流程解析
Nov 19 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 动态执行带有参数的类方法
2009/04/10 PHP
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
2020/06/04 Javascript
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
python利用hook技术破解https的实例代码
2013/03/25 Python
Python用GET方法上传文件
2015/03/10 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
见习期自我鉴定
2014/01/31 职场文书
安全标准化汇报材料
2014/02/03 职场文书
司仪主持词两篇
2014/03/22 职场文书
监察建议书格式
2014/05/19 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
导游词300字
2015/02/13 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书
500字作文之周记
2019/12/13 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python