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

发布时间 - 2026-01-11 03:03:48    点击率:

在项目中遇到按下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键使浏览器后退的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# js禁止浏览器后退  # JavaScript如何禁止Backspace键  # JS禁用浏览器退格键实现思路及代码  # 禁用backspace网页回退功能的实现代码  # javascript禁制后退键(Backspace)实例代码  # 给大家  # 按下  # 不太  # 希望能  # 几种  # 这篇  # 解决办法  # 小编  # 退到  # 大家多多  # 存在问题  # 输入框  # 之长  # 很清晰  # 加载  # 几种类型  # 下拉框  # currentTarget  # var  # target 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Swift中swift中的switch 语句  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  动图在线制作网站有哪些,滑动动图图集怎么做?  海南网站制作公司有哪些,海口网是哪家的?  高防服务器租用指南:配置选择与快速部署攻略  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  昵图网官网入口 昵图网素材平台官方入口  如何在阿里云虚拟服务器快速搭建网站?  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  如何破解联通资金短缺导致的基站建设难题?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  如何快速生成凡客建站的专业级图册?  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  jquery插件bootstrapValidator表单验证详解  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  网站制作价目表怎么做,珍爱网婚介费用多少?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Android Socket接口实现即时通讯实例代码  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  Laravel如何实现数据库事务?(DB Facade示例)  Linux系统运维自动化项目教程_Ansible批量管理实战  原生JS获取元素集合的子元素宽度实例  如何快速搭建安全的FTP站点?  高防服务器如何保障网站安全无虞?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  详解Android——蓝牙技术 带你实现终端间数据传输  什么是javascript作用域_全局和局部作用域有什么区别?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  Laravel如何处理表单验证?(Requests代码示例)  bing浏览器学术搜索入口_bing学术文献检索地址  详解阿里云nginx服务器多站点的配置  html5的keygen标签为什么废弃_替代方案说明【解答】  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  javascript日期怎么处理_如何格式化输出  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何在云服务器上快速搭建个人网站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  如何在IIS中新建站点并配置端口与IP地址?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  进行网站优化必须要坚持的四大原则  JavaScript Ajax实现异步通信