如何禁用浏览器后退按钮

时间:2012-10-03 22:24:10

标签: javascript jquery browser

我有包含iframe的网络应用。在主要部分客户端通过ajax与服务器通信,另外我添加了beforeunload = function(){return“something”;},所以当用户点击浏览器后退按钮时会出现警告,当用户点击离开页面时,他将失去会话和登录页面将显示。在iframe部分我使用servlet,因此当用户点击浏览器后退按钮警报时不会出现因为只有iframe页面会卸载。现在我想要实现的目标。当用户在iframe中进行操作时,当他单击浏览器后退按钮时,则会出现警报,当用户单击离开页面时,我想要注销整个应用程序。当他点击不离开页面iframe不应该重新加载。

我尝试使用beforeload和unload之前的两个事件来解决这个问题。 这是在iframe内部:

var confirm = false;
var clicked = true;
$(window).on('beforeunload', function(evt){
    if(confirm){
        return "Text";
    } else {
        clicked = false;
    }
});
$(window).on('unload',function(evt){
    if(clicked){
        $(this).off('beforeunload');
        window.parent.location = window.parent.location + "/error";
    }
});

现在当用户在iframe中操作时点击后退按钮浏览器时,会出现警告。当点击离开页面工作正常时,请退出。但是当点击不离开时,iframe中的页面会回到之前,而不是为什么:(。我想阻止它。

1 个答案:

答案 0 :(得分:0)

一个人无法禁用浏览器后退按钮功能,只有可以做的事情就是阻止他们。

以下是需要放置在页面的head部分的JavaScript代码段,您不希望用户使用后退按钮重新访问

<script type = "text/javascript" >

   function preventBack(){window.history.forward();}

    setTimeout("preventBack()", 0);

    window.onunload=function(){null};

</script>

假设有两页Page1.aspx和Page2.aspx以及Page1.aspx重定向到Page2.aspx

因此,为了防止用户使用Back Button访问Page1.aspx,您需要将上述脚本放在Page1.aspx的head部分中,如下所示。

enter image description here

以下是原始文章:http://www.aspsnippets.com/Articles/Disable-Browser-Back-Button-Functionality-using-JavaScript.aspx

相关问题