现在要在登录页面上实现禁用浏览器后退按钮的功能。上午找了一下,在JSP页面中嵌入
<script type='text/javascript'>
window.history.forward();//禁止页面后退
</script>是一种很普遍的方法,但没效果。求高手指点,有没有更好的方法。

解决方案 »

  1.   

    我的做法是:
    在jsp页面 <body>中添加javascript脚本:如下:
    <script type="text/javascript">
    window.history.go(1);
    </script>有效果。楼主你的做法也可以啊,不知你把js代码是放在JSP的head中还是body中了。应该放在body中
      

  2.   

    window.history.forward();
    这个是后退,而不是禁止后退吧。禁止后退有可能行不通。
      

  3.   

    如果把上段代码加到A页面的body中,由A跳转到B后,在B页面中返回A是被禁止的。如果A是一个系统的登录页面,在多个页面上都可通过注销返回登录首页A,这种情况下A的后退功能是需要禁止的,如何解决这个问题?
      

  4.   

    document.onkeydown=banBackSpace;
    /** 屏蔽退格键 */
    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;    
        }    
    }