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获取服务器时间的两个简单方法
Jan 08 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
Sep 03 Javascript
浅析js中substring和substr的方法
Nov 09 Javascript
JavaScript性能优化总结之加载与执行
Aug 11 Javascript
JavaScript中数组slice和splice的对比小结
Sep 22 Javascript
纯JS打造网页中checkbox和radio的美化效果
Oct 13 Javascript
JavaScript原生数组Array常用方法
Apr 06 Javascript
基于AngularJS实现表单验证功能
Jul 28 Javascript
详细介绍RxJS在Angular中的应用
Sep 23 Javascript
jQuery EasyUI Layout实现tabs标签的实例
Sep 26 jQuery
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
JS highcharts实现动态曲线代码示例
Oct 16 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中curl和file_get_content的区别
2014/05/10 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
js 数组操作代码集锦
2009/04/28 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
javascript制作2048游戏
2015/03/30 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
python实现俄罗斯方块
2018/06/26 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
详解Python_shutil模块
2019/03/15 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
关于python字符串方法分类详解
2019/08/20 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
如何给Python代码进行加密
2020/01/10 Python
python实现堆排序的实例讲解
2020/02/21 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
平面设计岗位职责
2013/12/14 职场文书
环保标语口号
2014/06/13 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
Go并发4种方法简明讲解
2022/04/06 Golang
MySQL添加索引特点及优化问题
2022/07/23 MySQL