Extjs 禁止使用键盘回退刷新

在 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 οnkeydοwn="if(event.keyCode==116){event.keyCode=0;return false;}">



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值