javascript怎么禁用浏览器后退按钮


Posted in Javascript onMarch 27, 2014

1、

<script language="JavaScript"> 
javascript:window.history.forward(1); 
</script>

利用JS产生一个“前进”的动作,以抵消后退功能,这种方法应该是最简洁的,并且不需要考虑用户连点两次或多次“后退”的情况,缺点是当用户端禁用了JavaScript之后即失效。

2、

<A HREF="logout.do" onclick="javascript:location.replace(this.href); event.returnValue=false; "> 
Logout (Back Disabled) 
</A>

用location.replace从一个页面转到另一个页面。这种方法的原理是,用新页面的URL替换当前的历史纪录,这样浏览历史记录中就只有一个页面,后退按钮永远不会变为可用。我想这可能正是许多人所寻求的方法,但这种方法仍旧不是任何情况下的最好方法。这种方法的缺点在于:简单地运用Response.Redirect将不再有效,这是因为每次用户从一个页面转到另一个页面,我们都必须用客户端代码清除location.history。另外还要注意,这种方法清除的是最后一个访问历史记录,而不是全部的访问记录。

3、

当键盘敲下后退键(Backspace)后
1、禁止浏览器自动后退
2、但不影响密码、单行文本、多行文本输入框等的回退操作

<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>

以上方法都是针对“后退”按钮作出的反应,客户端浏览器需要打开JavaScript代码。

4、禁止缓存

<% response.setHeader("Cache-Control", "no-cache"); 
response.setHeader("Cache-Control", "no-store"); 
response.setDateHeader("Expires", 0); 
response.setHeader("Pragma", "no-cache"); 
%>

这种方法使用服务器端脚本,强制浏览器重新访问服务器下载页面,而不从缓存读取,结合struts jsp页面中的<logic>标签实现重新定向。

以上各种方法都有一定的局限

5、

<script language="JavaScript"> function logout(){ 
window.close(true); 
window.open("logout.do"); 
} 
</script> 
<button onClick="logout()">Logout</button>

这种方法比较偷懒,关掉浏览器再重新开,经过我的测试在视觉上几乎感觉不出来延时,同时又保证了后退按钮不可用(新窗口浏览器后退按钮为灰色),看起来似乎是个好方法,但缺点也比较明显:

首先,关闭和重开的浏览器窗口大小可能不同,用户可以明显看出这一过程,并且在一定程度上影响操作。

其次,同上,这是一个JavaScript方法。

Javascript 相关文章推荐
JavaScript中判断函数是new还是()调用的区别说明
Apr 07 Javascript
基于jQuery的图片左右无缝滚动插件
May 23 Javascript
jquery对ajax的支持介绍
Dec 10 Javascript
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
javascript获取wx.config内部字段解决微信分享
Mar 09 Javascript
深入理解JavaScript中的预解析
Jan 04 Javascript
jquery拼接ajax 的json和字符串拼接的方法
Mar 11 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
Apr 12 Javascript
详解动画插件wow.js的使用方法
Sep 13 Javascript
微信小程序排坑指南详解
May 23 Javascript
Vue表单及表单绑定方法
Sep 04 Javascript
原生JavaScript实现滑动拖动验证的示例代码
Dec 06 Javascript
js弹出确认是否删除对话框
Mar 27 #Javascript
js或jquery实现页面打印可局部打印
Mar 27 #Javascript
window.location.href IE下跳转失效的解决方法
Mar 27 #Javascript
jquery无法设置checkbox选中即没有变成选中状态
Mar 27 #Javascript
JS字符串拼接在ie中都报错的解决方法
Mar 27 #Javascript
IE下双击checkbox反应延迟问题的解决方法
Mar 27 #Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
Mar 27 #Javascript
You might like
快速配置PHPMyAdmin方法
2008/06/05 PHP
PHP学习笔记之二
2011/01/17 PHP
PHP中Array相关函数简介
2016/07/03 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
Python3.x中自定义比较函数
2015/04/24 Python
Python基于select实现的socket服务器
2016/04/13 Python
全面分析Python的优点和缺点
2018/02/07 Python
python使用epoll实现服务端的方法
2018/10/16 Python
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
Python简单I/O操作示例
2019/03/18 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
python爬虫---requests库的用法详解
2020/09/28 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
实习自我鉴定模板
2013/09/28 职场文书
大三在校生电子商务求职信
2013/10/29 职场文书
中学生校园广播稿
2014/01/16 职场文书
战略合作协议书范本
2014/04/18 职场文书
演讲稿格式范文
2014/05/19 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
中学生学习保证书
2015/02/26 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL
微信小程序实现录音Record功能
2021/05/09 Javascript
防止web项目中的SQL注入
2021/12/06 MySQL
Java死锁的排查
2022/05/11 Java/Android