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中获取请求的URL参数[正则]
Dec 25 Javascript
jquery阻止冒泡事件使用模拟事件
Sep 06 Javascript
jquery ajax属性async(同步异步)示例
Nov 05 Javascript
BootStrap selectpicker后台动态绑定数据的方法
Jul 28 Javascript
理解javascript async的用法
Aug 22 Javascript
JavaScript+H5实现微信摇一摇功能
May 23 Javascript
Vue 获取数组键名的方法
Jun 21 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
Apr 23 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
May 20 Javascript
Vue3 源码导读(推荐)
Oct 14 Javascript
vuex 实现getter值赋值给vue组件里的data示例
Nov 05 Javascript
python虚拟环境 virtualenv的简单使用
Jan 21 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
全国FM电台频率大全 - 7 吉林省
2020/03/11 无线电
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
Jquery 弹出层插件实现代码
2009/10/24 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
javascript实现用户点击数量统计
2016/12/25 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
骨干教师培训制度
2014/01/13 职场文书
竞争上岗实施方案
2014/03/21 职场文书
初中作文评语大全
2014/04/23 职场文书
环境保护建议书
2014/08/26 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
MySQL 十大常用字符串函数详解
2021/06/30 MySQL
利用Python实现模拟登录知乎
2022/05/25 Python