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 相关文章推荐
JS Date函数整理方便使用
Oct 23 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
Jan 09 Javascript
JS替换文本域内的回车示例
Feb 18 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
Sep 14 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
Oct 12 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
May 28 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
Oct 10 Javascript
JS前向后瞻正则表达式定义与用法示例
Dec 27 Javascript
详解Vue方法与事件
Mar 09 Javascript
js提取中文拼音首字母的封装工具类
Mar 12 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
Oct 09 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
JAVA中截取字符串substring用法详解
2017/04/14 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
浅谈jquery fullpage 插件增加头部和版权的方法
2018/03/20 jQuery
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
Python的print用法示例
2014/02/11 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
合伙经营协议书范本
2014/04/18 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
2014年防汛工作总结
2014/12/08 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
军训通讯稿范文
2015/07/18 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS