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 相关文章推荐
5 cool javascript apps
Mar 24 Javascript
Javascript 日期处理之时区问题
Oct 08 Javascript
jQuery基本选择器选择元素使用介绍
Apr 18 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
js根据日期判断星座的示例代码
Jan 23 Javascript
javascript实现支持移动设备画廊
Aug 24 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
Jul 14 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
Jan 13 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
Mar 14 Javascript
React组件生命周期详解
Jul 03 Javascript
JS 实现获取验证码 倒计时功能
Oct 29 Javascript
Vue文本模糊匹配功能如何实现
Jul 30 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 IN_ARRAY 函数使用注意事项
2010/07/24 PHP
php类常量的使用详解
2013/06/08 PHP
PHP系统命令函数使用分析
2013/07/05 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
深入分析PHP设计模式
2020/06/15 PHP
一段实时更新的时间代码
2006/07/07 Javascript
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
小程序实现列表多个批量倒计时
2021/01/29 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
2019/07/29 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
javascript实现多边形碰撞检测
2020/10/24 Javascript
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
Python读取word文本操作详解
2018/01/22 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
Python面向对象类的继承实例详解
2018/06/27 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python中实现输入一个整数的案例
2020/05/03 Python
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
Collection和Collections的区别
2016/05/02 面试题
公务员个人自我评价分享
2013/11/06 职场文书
酒店管理专业毕业生推荐信
2013/11/10 职场文书
文明学生事迹材料
2014/01/29 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
店面出租协议书范本
2014/11/28 职场文书