当前位置: 移动技术网 > IT编程>脚本编程>extjs > Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享

Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享

2018年04月26日  | 移动技术网IT编程  | 我要评论

在 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;}">  

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网