[置顶] js禁用回退键[backspace键]浏览历史跳转的解决办法
来源:互联网 发布:实况足球2017捏脸数据 编辑:程序博客网 时间:2024/06/05 22:48
在做公司的CMS的时候出现了一些js的问题,其中有一个就是在页面非输入框中按下回退键[backspace键]时页面会跳转到上一页,但是上一页加载失败,说会话已过期,
问题描述到此结束.
解决办法:
第一直觉就是上网搜答案,但是结果不理想。
第二上论坛上看看有没有解决办法,到是找到一个类似的问你
‘在IE里按backspace键时如何知道是发生在input还是在中文输入法框?’
地址:http://www.iteye.com/problems/3272
问题类似,但是不是解决办法,还好的就是我根据他的思路自己试着找解决办法。
多谢fuwang
下面是我代码:
window.onload=function(){/**************************** * 作者:q821424508@sina.com* * 时间:2012-07-12* * version:1.0* * * ****************************/document.getElementsByTagName("body")[0].onkeydown =function(){if(event.keyCode==8){var elem = event.srcElement;var name = elem.nodeName;if(name!='INPUT' && name!='TEXTAREA'){event.returnValue = false ;return ;}var type_e = elem.type.toUpperCase();if(name=='INPUT' && (type_e!='TEXT' && type_e!='TEXTAREA' && type_e!='PASSWORD' && type_e!='FILE')){event.returnValue = false ;return ;}if(name=='INPUT' && (elem.readOnly==true || elem.disabled ==true)){event.returnValue = false ;return ;}}}}
问题解决了,
使用说明:
1.把代码直接复制到页面,【页面必须含有body标签】
2.放到任意一个页面引用的js文件中【直接放到文件的最开始,或最后,不要放到方法里面,页面必须含有body标签】
以上为1.0版本,只支持IE:
-------------------------------------------------------分割线------------------------------------------------------------
以下为2.0版本,支持IE,firefox,chrome[这三款浏览器经过测试]等浏览器
(又修复了个不大不小的bug,现在是2.1)
window.onload=function(){/**************************** * 作者:q821424508@sina.com* * 时间:2012-08-20* * version:2.1* * * ****************************/document.getElementsByTagName("body")[0].onkeydown =function(){//获取事件对象var elem = event.relatedTarget || event.srcElement || event.target ||event.currentTarget; if(event.keyCode==8){//判断按键为backSpace键//获取按键按下时光标做指向的elementvar elem = event.srcElement || event.currentTarget; //判断是否需要阻止按下键盘的事件默认传递var name = elem.nodeName;if(name!='INPUT' && name!='TEXTAREA'){return _stopIt(event);}var type_e = elem.type.toUpperCase();if(name=='INPUT' && (type_e!='TEXT' && type_e!='TEXTAREA' && type_e!='PASSWORD' && type_e!='FILE')){return _stopIt(event);}if(name=='INPUT' && (elem.readOnly==true || elem.disabled ==true)){return _stopIt(event);}}}}function _stopIt(e){if(e.returnValue){e.returnValue = false ;}if(e.preventDefault ){e.preventDefault();}return false;}
欢迎拍砖。
欢迎在自己的项目中使用,复制,传播,都可以,不过请注明出处。
-------------------------------------------------------------------------------------------------------------------------
版本升级:
当前版本 2.1
修复firefox下无法删除input里面字符的bug
说明:
不知道为毛,在firefox下出现问题了,之前确定测试过,然后有一个童鞋说这个脚本在firefox下不能用,会出现上面所说现象,我说我调试下,但是后来他说又可以了,
不过经过我的测试这段脚本确实有问题,
确实会出现上述问题,不过是时有时无。
算了还是改一下吧,
出现问题的原因:
firefox下 var elem = event.relatedTarget || event.srcElement 无法获取到目标对象。
所以换成target属性来获取。
ok 欢迎继续使用
有问题 请提出来 我来修复。
- [置顶] js禁用回退键[backspace键]浏览历史跳转的解决办法
- js禁用回退键[backspace键]浏览历史跳转的解决办法
- js禁用回退键[backspace键]浏览历史跳转的解决办法
- js禁用回退键[backspace键]浏览历史跳转的解决办法
- js禁用回退键[backspace键]浏览历史跳转的解决办法
- javascript 禁用回退键Backspace
- 按下Backspace键,就会跳转到上一个页面。JavaScript屏蔽Backspace键处理,禁用Backspace键。
- C# 禁用backspace键
- 菜鸟日记之---禁用删除键(backSpace键)方法 js
- JS屏蔽Backspace跳转网页
- 博客浏览:js 控制页面的跳转
- js处理backspace键
- 浏览历史的实现
- SLES10中vi的backspace键不好用的解决办法
- 小白 VIM Backspace键不能使用的解决办法
- 禁用backspace键的后退功能,但是可以删除文本内容
- /*禁用backspace键的后退功能,但是可以删除文本内容*/
- 禁用backspace键的后退功能,但是可以删除文本内容
- Java魔法堂:String.format详解
- sqlserver200 无法访问
- 同一个项目中两个jqery版本共存的问题
- webview里面的js下拉刷新
- [置顶] java值传递
- [置顶] js禁用回退键[backspace键]浏览历史跳转的解决办法
- [置顶] 自动更具数据库表来生成.java文件的小工具
- [置顶] java版多线程下载
- Hibernate的HQL使用Oracle的Regexp_like函数的方式
- Java环境变量设置
- HDU 3485 Count 101
- 用ViewPager实现广告栏
- ubuntu14.04安装mate
- Java基础 IO流 File Properties PrintWriter 序列流SequenceInputStream