js禁⽌Backspace键使浏览器后退的实现⽅法
在项⽬中遇到按下Backspace键让浏览器后退的问题,上⽹搜了⼏种解决⽅案都不太理想。于是集众⼈之智,采众家之长,归纳如下:
1、在公⽤js中定义阻⽌Backspace的⽅法
function banBackSpace(e){
var ev = e || window.event;
//各种浏览器下获取事件对象
var obj = ev.relatedTarget || ev.srcElement || ev.target ||ev.currentTarget;
//按下Backspace键
if(ev.keyCode == 8){
var tagName = deName //标签名称
//如果标签不是input或者textarea则阻⽌Backspace
if(tagName!='INPUT' && tagName!='TEXTAREA'){
return stopIt(ev);
}
var tagType = UpperCase();//标签类型
//input标签除了下⾯⼏种类型,全部阻⽌Backspace
if(tagName=='INPUT' && (tagType!='TEXT' && tagType!='TEXTAREA' && tagType!='PASSWORD')){
return stopIt(ev);
}
//input或者textarea输⼊框如果不可编辑则阻⽌Backspace
if((tagName=='INPUT' || tagName=='TEXTAREA') && (adOnly==true || obj.disabled ==true)){
return stopIt(ev);
}
}
}
function stopIt(ev){
if(ev.preventDefault ){
//preventDefault()⽅法阻⽌元素发⽣默认的⾏为
ev.preventDefault();
}
urnValue){
//IE浏览器下⽤urnValue = false;实现阻⽌元素发⽣默认的⾏为
}
return false;
input框禁止输入
}
⽅法注释写的很清晰了,这⾥不过多解释。
2、页⾯加载完成就调⽤该⽅法
$(function(){
//实现对字符码的截获,keypress中屏蔽了这些功能按键
//对功能按键的获取
})
注:按键事件触发顺序: keydown -> keypress ->textInput -> keyup
存在问题:select下拉列表展开后,⽆法获取键盘事件,此时按Backspace键,浏览器还是会回退到历史;解决办法:将select下拉框改为easyUI的combobox;
以上这篇js禁⽌Backspace键使浏览器后退的实现⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。