js禁止Backspace键使浏览器后退的实现方法


Posted in Javascript onSeptember 01, 2017

在项目中遇到按下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 = obj.nodeName //标签名称
 //如果标签不是input或者textarea则阻止Backspace
 if(tagName!='INPUT' && tagName!='TEXTAREA'){
  return stopIt(ev);
 }
 var tagType = obj.type.toUpperCase();//标签类型
 //input标签除了下面几种类型,全部阻止Backspace
 if(tagName=='INPUT' && (tagType!='TEXT' && tagType!='TEXTAREA' && tagType!='PASSWORD')){
  return stopIt(ev);
 }
 //input或者textarea输入框如果不可编辑则阻止Backspace
 if((tagName=='INPUT' || tagName=='TEXTAREA') && (obj.readOnly==true || obj.disabled ==true)){
  return stopIt(ev);
 }
 }
}
function stopIt(ev){
 if(ev.preventDefault ){
 //preventDefault()方法阻止元素发生默认的行为
 ev.preventDefault();
 }
 if(ev.returnValue){
 //IE浏览器下用window.event.returnValue = false;实现阻止元素发生默认的行为
 ev.returnValue = false;
 }
 return false;
}

方法注释写的很清晰了,这里不过多解释。

2、页面加载完成就调用该方法

$(function(){
 //实现对字符码的截获,keypress中屏蔽了这些功能按键
 document.onkeypress = banBackSpace;
 //对功能按键的获取
 document.onkeydown = banBackSpace;
 })

注:  按键事件触发顺序: keydown -> keypress ->textInput -> keyup

存在问题:select下拉列表展开后,无法获取键盘事件,此时按Backspace键,浏览器还是会回退到历史;解决办法:将select下拉框改为easyUI的combobox;

以上这篇js禁止Backspace键使浏览器后退的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 Javascript
jQuery中需要注意的细节问题小结
Dec 06 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 Javascript
JS生成不重复的随机数组的简单实例
Jul 10 Javascript
基于jQuery实现表格的查看修改删除
Aug 01 Javascript
引用jquery框架后出错的解决方法
Aug 09 Javascript
Vue实例中生命周期created和mounted的区别详解
Aug 25 Javascript
JavaScript html5 canvas实现图片上画超链接
Oct 20 Javascript
ECharts地图绘制和钻取简易接口详解
Jul 12 Javascript
Vue Components 数字键盘的实现
Sep 18 Javascript
React中获取数据的3种方法及优缺点
Feb 18 Javascript
JavaScript中数组常见操作技巧
Sep 01 #Javascript
js禁止浏览器页面后退功能的实例(推荐)
Sep 01 #Javascript
使用JS和canvas实现gif动图的停止和播放代码
Sep 01 #Javascript
关于Promise 异步编程的实例讲解
Sep 01 #Javascript
[js高手之路]单例模式实现模态框的示例
Sep 01 #Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 #jQuery
详解使用angular的HttpClient搭配rxjs
Sep 01 #Javascript
You might like
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
2018/06/04 PHP
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
python中str内置函数用法总结
2020/12/27 Python
Matlab使用Plot函数实现数据动态显示方法总结
2021/02/25 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
校园餐饮创业计划书
2014/01/10 职场文书
文字自荐书范文
2014/02/10 职场文书
爱我中华演讲稿
2014/05/20 职场文书
企业理念标语
2014/06/09 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android