欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-09-09 09:38:47
没有绝对的屏蔽,最好是js结合服务端混合用。服务端通过判断要打开的页面的参数是否第一次打开,如果不是的话就跳转到指定页面。这里只说js方法。 我们在真实的项目开发中经常会...

没有绝对的屏蔽,最好是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>

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