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的星级评分插件
Aug 12 Javascript
javascript采用数组实现tab菜单切换效果
Dec 12 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
May 17 Javascript
jQuery中hide()方法用法实例
Dec 24 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
Mar 12 Javascript
简单分析javascript中的函数
Sep 10 Javascript
Angular2 之 路由与导航详细介绍
May 26 Javascript
Js面试算法详解
Apr 08 Javascript
小程序自定义模板实现吸顶功能
Jan 08 Javascript
JS如何寻找数组中心索引过程解析
Jun 01 Javascript
JS+Canvas实现五子棋游戏
Aug 26 Javascript
uniapp开发小程序的经验总结
Apr 08 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
MySql中正则表达式的使用方法描述
2008/07/30 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
2013/06/21 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
Jquery基础教程之DOM操作
2015/08/19 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
Python是编译运行的验证方法
2015/01/30 Python
python访问系统环境变量的方法
2015/04/29 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
Python中base64与xml取值结合问题
2019/12/22 Python
python实现简单坦克大战
2020/03/27 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
C#面试题
2016/05/06 面试题
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
工厂厂长的职责
2013/12/12 职场文书
汽车技术服务英文求职信范文
2014/01/02 职场文书
外贸业务员求职信
2014/06/16 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript
基于Python实现西西成语接龙小助手
2022/08/05 Golang