Welcome 微信登录

首页 / 脚本样式 / JavaScript / Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享

在 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=0elseevent.preventDefault();//for ff}}}else{if(window.event)event.returnValue = false ;// or event.keyCode=0elseevent.preventDefault();//for ff}}}var map = new Ext.KeyMap(document, [{key: [116], // F5fn: function(){ },stopEvent: true,scope: this},{key: [37,39,115], //方向键左,右,F4alt: true,fn: function(){ },stopEvent: true,scope: this}, {key: [82], // ctrl + Rctrl: true,fn: function(){ },stopEvent: true,scope: this}]);map.enable();});
禁止在IE8中使用 F5 刷新还需加上代码 :
<body onkeydown="if(event.keyCode==116){event.keyCode=0;return false;}">