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

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

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

(0)

相关推荐

  • JS禁用浏览器退格键实现思路及代码

    上周提交了一个项目(内部使用的),一同事提出个BUG,说要禁用退格键(backspace或者叫后退键),因为这和他的习惯不一样,担心万一文字录入一半,他按了退格键,那整个页面的内容就白填了,然后信誓旦旦的说他做的系统中后退键都是不能用的,我这个系统有问题,当时因为事多,只把这个问题记录下来了,后来查了下他以前做的项目,也没有对退格键进行处理.自己的项目都没处理,到我这嚷嚷来了,算了,不和年轻人一般见识.不就禁用个后退键,简单. 其实说禁用也不是完全禁用,后退键在各浏览器下默认为点击了一下后退按钮

  • js实现模拟计算器退格键删除文字效果的方法

    本文实例讲述了js实现模拟计算器退格键删除文字效果的方法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &

  • 屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码

    //屏蔽鼠标右键.Ctrl+n.shift+F10.F5刷新.退格键  function KeyDown(){  if ((window.event.altKey)&&  ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←  (window.event.keyCode==39))){ //屏蔽 Alt+ 方向键 →  alert("不准你使用ALT+方向键前进或后退网页!");  event.returnValue=false; 

  • js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)

    复制代码 代码如下: <script language="Javascript" type="text/javascript"> //屏蔽鼠标右键.Ctrl+N.Shift+F10.F11.F5刷新.退格键 function document.oncontextmenu() { event.returnValue = false; } //屏蔽鼠标右键 function window.onhelp() { return false } //屏蔽F1帮助

  • jsp要实现屏蔽退格键问题探讨

    今天涉及到一个问题,在jsp中的查询条件中,有文本框可输入筛选条件,也有下拉框选择筛选条件.输入框中内容可按"Backspace"键进行删除,但是下拉框中需要屏蔽backspace功能,否则就回执行页面的回退功能.代码如下 复制代码 代码如下: <td width="350px;">企业名称:  <input type="text" name="filter_psName" id="psName&q

  • js 禁用只读文本框获得焦点时的退格键

    有时候难免会要用到只读的文本框,可今天发现只读文本框有一个缺陷,当鼠标焦点在文本框里面的时候按回退键(backSpace), 会退回到前一个页面,这个问题就有点烦恼了,用户又不清楚可不可以输入,他如果看到文本框想去改里面的东西,按一下,有可能前面所有填写的数据就会丢失.故此写了个方法,供大伙有需要时放入<script></script>,保管你称心如意. 复制代码 代码如下: document.documentElement.onkeydown = function(evt){ v

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

    没有绝对的屏蔽,最好是js结合服务端混合用.服务端通过判断要打开的页面的参数是否第一次打开,如果不是的话就跳转到指定页面.这里只说js方法. 我们在真实的项目开发中经常会使用JS 对键盘上的一些按键进行禁用,常见的比如说退格键(backspace/ 后退键),我在一个项目中就遇到过在页面编辑的时候禁用掉退格键,因为退格键会发生页面后退,这样编辑的内容都会失去了,非常的恶心人.ok ,废话少说,直接上代码. 比较好的代码,处理键盘事件 禁止后退键(Backspace)密码或单行.多行文本框除外 <

  • 屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键

    屏蔽鼠标右键.Ctrl+N.Shift+F10.Alt+F4.F11.F5刷新.退格键 //屏蔽鼠标右键.Ctrl+N.Shift+F10.F11.F5刷新.退格键 function document.oncontextmenu(){event.returnValue=false;}//屏蔽鼠标右键 function window.onhelp(){return false} //屏蔽F1帮助 function document.onkeydown(){ if((window.event.alt

  • JS 屏蔽按键效果与改变按键效果的示例代码

    功能键F1-F2:112-123 a-b:65-90 数字键:0-9:48-57 ESC:27 退格键:8 回车:13 shift:16:Ctrl:17:Alt:18 空格:32 Insert:45:Delete:46 复制代码 代码如下: function document.onkeydown(){                //网页内按下回车触发  if(event.keyCode==13)  {   document.getElementById("loginbtn").cl

  • Cygwin下安装vim后,vim中退格键无法正常使用的解决方法

    问题描述: 在Cygwin中安装完vim后 进入vim,发现上下左右键和退格键都无法正常使用 问题分析: 首先考虑到的就是缺少vim的配置文件,首先查看/etc路径下是否有vim的配置文件 admin@ThinkPad /etc $ cd /etc admin@ThinkPad /etc $ ls -a|grep vimrc发现/etc下没有vim的全局配置文件,然后再查找当前用户的vim配置文件.vimrc admin@ThinkPad /etc $ cd ~ admin@ThinkPad ~

  • javascript禁制后退键(Backspace)实例代码

    复制代码 代码如下: function banBackSpace(e) {                  var ev = e || window.event;//获取event对象                  var obj = ev.target || ev.srcElement;//获取事件源                  var t = obj.type || obj.getAttribute('type');//获取事件源类型                  //获取作

随机推荐