在 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;}">
如对本文有疑问, 点击进行留言回复!!
ExtJs 学习笔记 Ext.Panle Ext.TabPanel Ext.Viewport
网友评论