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 相关文章推荐
jQuery Ajax 全解析
Feb 08 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
Eval and new funciton not the same thing
Dec 27 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
Jul 10 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
Sep 09 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
Mar 28 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
Apr 19 Javascript
Bootstrap登陆注册页面开发教程
Jul 12 Javascript
原生js实现返回顶部缓冲效果
Jan 18 Javascript
vue页面切换过渡transition效果
Oct 08 Javascript
vue+django实现一对一聊天功能的实例代码
Jul 17 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
Nov 12 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
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
php过滤html标记属性类用法实例
2014/09/23 PHP
PHP用反撇号执行外部命令
2015/04/14 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
php图片添加水印例子
2016/07/20 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
js返回顶部实例分享
2016/12/21 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
用Python程序抓取网页的HTML信息的一个小实例
2015/05/02 Python
Python入门之modf()方法的使用
2015/05/15 Python
python保存字符串到文件的方法
2015/07/01 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
Python代码执行时间测量模块timeit用法解析
2020/07/01 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
室内设计专业学生的自我评价分享
2013/11/27 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python