龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

javascript禁用浏览器后退按钮实现代码

时间:2012-12-29 08:41来源:未知 作者:admin 点击:
分享到:
文章收集了与参考了大量的关于javascript禁用浏览器后退按钮实现代码,有需要的朋友可以看看。 用于实现该功能的JavaScript代码如下: 所示: 代码如下 script language=JavaScript !-- javascrip
文章收集了与参考了大量的关于javascript禁用浏览器后退按钮实现代码,有需要的朋友可以看看。

用于实现该功能的JavaScript代码如下:
所示:

 代码如下
<script language="JavaScript">
<!--
javascript:window.history.forward(1);
//-->
</script>

  同样地,这种方法虽然有效,但距离“最好的方法”还差得很远。后来我又看到有人建议用location.replace从一个页面转到另一个页面。这种方法的原理是,用新页面的URL替换当前的历史纪录,这样浏览历史记录中就只有一个页面,后退按钮永远不会变为可用。我想这可能正是许多人所寻求的方法,但这种方法仍旧不是任何情况下的最好方法。使用这种
方法的实例如下所示:

 代码如下
<A HREF="PageName.htm" onclick="javascript:location.replace(this.href);
event.returnValue=false; ">

禁止后退到本页面的链接</A>
   禁止后退到本页面的链接!
  这种方法的缺点在于:简单地运用Response.Redirect将不再有效,这是因为每次用户从一个页面转到另一个页面,我们都必须用客户端代码清除location.history。另外还要注意,这种方法清除的是最后一个访问历史记录,而不是全部的访问记录。


当键盘敲下后退键(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>标签实现重新定向。

以上各种方法都有一定的局限


精彩图集

赞助商链接