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 相关文章推荐
使用js获取QueryString的方法小结
Feb 28 Javascript
js原型链原理看图说明
Jul 07 Javascript
JQuery中节点遍历方法实例
May 18 Javascript
jQuery自定义滚动条完整实例
Jan 08 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
vue插件tab选项卡使用小结
Oct 27 Javascript
jQuery根据ID、CLASS、等获取对象的实例
Dec 04 Javascript
详解使用JS如何制作简单的ASCII图与单极图
Mar 31 Javascript
JavaScript条件判断_动力节点Java学院整理
Jun 26 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
Jul 03 Javascript
node.JS事件机制与events事件模块的使用方法详解
Feb 06 Javascript
Javascript实现单选框效果
Dec 09 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多文件上传实例
2015/07/09 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
php实现简单四则运算器
2020/11/29 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
javascript简单实现命名空间效果
2014/03/06 Javascript
javascript中的this详解
2014/12/08 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
2016/02/17 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
python thread 并发且顺序运行示例
2009/04/09 Python
简单介绍Python中的struct模块
2015/04/28 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
Python实现使用卷积提取图片轮廓功能示例
2018/05/12 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
Pytorch释放显存占用方式
2020/01/13 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
迪拜航空官方网站:flydubai
2017/04/20 全球购物
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
汽车检测与维修个人求职信
2013/09/24 职场文书
廉政教育心得体会
2014/01/01 职场文书
销售经理岗位职责
2014/03/16 职场文书
管理建议书范文
2014/05/13 职场文书
员工年终自我评价
2014/09/14 职场文书
工作检讨书500字
2014/10/19 职场文书
廉洁自律证明
2015/06/24 职场文书
高中生军训感言
2015/08/01 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
小学班主任工作随笔
2015/08/15 职场文书
《刷子李》教学反思
2016/02/20 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS