该方法可以兼容多种浏览器,至少具体可以兼容多少种,没有实际考证过。本方法源于别处,具体什么地方,由于时间比较长,忘记了。分享这个方法是因为我自己觉得该方法比较实用,在项目是时候,当时我已经找了几种解决回退键刷新页面问题的方法,但是经实验,都不能够很好的兼容ie11,最终当前方法解决的该问题。
window.οnlοad=function(){
document.getElementsByTagName("body")[0].onkeydown =function(){
//获取事件对象
var elem = event.relatedTarget || event.srcElement || event.target ||event.currentTarget;if(event.keyCode==8){//判断按键为backSpace键
//获取按键按下时光标做指向的element
var elem = event.srcElement || event.currentTarget;//判断是否需要阻止按下键盘的事件默认传递
var name = elem.nodeName;if(name!='INPUT' && name!='TEXTAREA'){
return _stopIt(event); }var type_e = elem.type.toUpperCase();
if(name=='INPUT' && (type_e!='TEXT' && type_e!='TEXTAREA' && type_e!='PASSWORD' && type_e!='FILE')){
return _stopIt(event); }if(name=='INPUT' && (elem.readOnly==true || elem.disabled ==true)){
return _stopIt(event); }}
} }function _stopIt(e){
if(e.returnValue){
e.returnValue = false ;
}
if(e.preventDefault ){
e.preventDefault();
}
return false;
}