当前位置: 移动技术网 > IT编程>开发语言>JavaScript > js屏蔽退格键(backspace或者叫后退键与F5)

js屏蔽退格键(backspace或者叫后退键与F5)

2019年03月17日  | 移动技术网IT编程  | 我要评论

没有绝对的屏蔽,最好是js结合服务端混合用。服务端通过判断要打开的页面的参数是否第一次打开,如果不是的话就跳转到指定页面。这里只说js方法。

我们在真实的项目开发中经常会使用js 对键盘上的一些按键进行禁用,常见的比如说退格键(backspace/ 后退键),我在一个项目中就遇到过在页面编辑的时候禁用掉退格键,因为退格键会发生页面后退,这样编辑的内容都会失去了,非常的恶心人。ok ,废话少说,直接上代码。

比较好的代码,处理键盘事件 禁止后退键(backspace)密码或单行、多行文本框除外

<script type="text/javascript"> 
 
//处理键盘事件 禁止后退键(backspace)密码或单行、多行文本框除外 
function banbackspace(e){  
 var ev = e || window.event;//获取event对象  
 var obj = ev.target || ev.srcelement;//获取事件源  
  
 var t = obj.type || obj.getattribute('type');//获取事件源类型 
  
 //获取作为判断条件的事件类型 
 var vreadonly = obj.getattribute('readonly'); 
 var venabled = obj.getattribute('enabled'); 
 //处理null值情况 
 vreadonly = (vreadonly == null) ? false : vreadonly; 
 venabled = (venabled == null) ? true : venabled; 
  
 //当敲backspace键时,事件源类型为密码或单行、多行文本的, 
 //并且readonly属性为true或enabled属性为false的,则退格键失效 
 var flag1=(ev.keycode == 8 && (t=="password" || t=="text" || t=="textarea") 
    && (vreadonly==true || venabled!=true))?true:false; 
  
 //当敲backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效 
 var flag2=(ev.keycode == 8 && t != "password" && t != "text" && t != "textarea") 
    ?true:false;   
  
 //判断 
 if(flag2){ 
  return false; 
 } 
 if(flag1){  
  return false;  
 }  
} 
 
//禁止后退键 作用于firefox、opera 
document.onkeypress=banbackspace; 
//禁止后退键 作用于ie、chrome 
document.onkeydown=banbackspace; 
 
</script> 

使用方法:把上面的js代码放到<head></head>之间就ok了

下面是其它网友的补充

<script type="text/javascript">
javascript:window.history.forward(1);//禁用回退(比如:当前在b页面,点击后退会退回到a页面,那么该代码写在a页面,然后在b页面就不会回退到a了)
</script>

<script type="text/javascript">
//禁止后退键 作用于firefox、opera 
document.onkeypress=banbackspace;
//禁止后退键 作用于ie、chrome 
document.onkeydown=banbackspace;
//处理键盘事件 禁止后退键(backspace)密码或单行、多行文本框除外 
function banbackspace(e){ 
var ev = e || window.event;//获取event对象 
var obj = ev.target || ev.srcelement;//获取事件源 
var t = obj.type || obj.getattribute('type');//获取事件源类型 
//获取作为判断条件的事件类型 
var vreadonly = obj.getattribute('readonly'); 
var venabled = obj.getattribute('enabled'); 
//处理null值情况 
vreadonly = (vreadonly == null) ? false : vreadonly; 
venabled = (venabled == null) ? true : venabled; 
//当敲backspace键时,事件源类型为密码或单行、多行文本的, 
//并且readonly属性为true或enabled属性为false的,则退格键失效 
var flag1=(ev.keycode == 8 && (t=="password" || t=="text" || t=="textarea") && (vreadonly==true || venabled!=true))?true:false; 
//当敲backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效 
var flag2=(ev.keycode == 8 && t != "password" && t != "text" && t != "textarea") ?true:false; 
//判断 
if(flag2){ 
return false; 
} 
if(flag1){ 
return false; 
} 
} 

</script>

屏蔽f5

<script type="text/javascript">
//屏蔽f5
document.onkeydown = function(e){
e = window.event || e;
var keycode = e.keycode || e.which;
if(e.ctrlkey || e.altkey || e.shiftkey
|| keycode >= 112 && keycode <= 123){
if(window.event){// ie
try{e.keycode = 0;}catch(e){}
e.returnvalue = false;
}else{// ff
e.preventdefault();
}
}
}
//屏蔽右键
document.oncontextmenu = function(e){
return false;
}
</script>

这篇文章就介绍到这了,需要的朋友可以参考一下

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网