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中的call实现继承
Jan 22 Javascript
IE8下关于querySelectorAll()的问题
May 13 Javascript
eval的两组性能测试数据
Aug 17 Javascript
JS中Iframe之间传值的方法
Mar 11 Javascript
使用js对select动态添加和删除OPTION示例代码
Aug 12 Javascript
使用JavaScript获取电池状态的方法
May 03 Javascript
JavaScript如何实现跨域请求
Aug 05 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
Jan 13 Javascript
详解用webpack把我们的业务模块分开打包的方法
Jul 20 Javascript
vue实现点击图片放大效果
Aug 15 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
Dec 13 Javascript
手写实现JS中的new
Nov 07 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学习笔记之数组篇
2011/06/28 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
js调用css属性写法
2013/09/21 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
Vue组件开发初探
2017/02/14 Javascript
DOM事件探秘篇
2017/02/15 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
如何用Python绘制3D柱形图
2020/09/16 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
建筑学推荐信
2013/11/03 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
婚内房产协议书范本
2014/10/02 职场文书
初三语文教学计划
2015/01/22 职场文书
获奖感言范文
2015/07/31 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python