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 八进制转义字符(8进制)
Apr 08 Javascript
Jquery下:nth-child(an+b)的使用注意
May 28 Javascript
解决js数据包含加号+通过ajax传到后台时出现连接错误
Aug 01 Javascript
javascript if条件判断方法小结
May 17 Javascript
java、javascript实现附件下载示例
Aug 14 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
Aug 21 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
Nov 23 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
AngularGauge 属性解析详解
Sep 06 Javascript
javascript 取小数点后几位几种方法总结
Aug 02 Javascript
react实现一个优雅的图片占位模块组件详解
Oct 30 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
Feb 27 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
PHP COOKIE设置为浏览器进程
2009/06/21 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
python通过线程实现定时器timer的方法
2015/03/16 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
Python实现括号匹配方法详解
2020/02/10 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
自我鉴定三原则
2014/01/13 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
法律七进实施方案
2014/03/15 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
实习公司领导推荐函
2014/05/21 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
警告通知
2015/04/25 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
宝塔更新Python及Flask项目的部署
2022/04/11 Python
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python