【问题标题】:Browser back button浏览器后退按钮
【发布时间】:2013-03-02 13:28:43
【问题描述】:

我正在使用以下代码行来禁用注销后浏览器后退按钮的问题。

function LogoutOnClick() {
    window.history.go(-1);
}

但是,这段代码有一个问题,假设我有三个页面,第一个是登录页面(login.cshtml),第二个成功登录页面(home.cshtml),第三个页面是关于页面(about.cshtml) ,

现在我登录然后它将重定向到home.cshtml 页面,现在我移动到第三页about.cshtml,之后我从about.cshtml 页面注销,它将我重定向到login.cshtml 页面。

现在,如果我 clicked on browser back button 再次将我重定向到 about.cshtml 页面,但用户无法更改或添加任何内容。

所以让我知道是否有任何合适的代码或方法来解决这个问题。

【问题讨论】:

    标签: javascript jquery browser-cache back-button


    【解决方案1】:

    要禁用后退浏览器按钮了解更多信息:here

    我认为这段代码可以帮助你:

     <SCRIPT type="text/javascript">
        window.history.forward();
        function noBack() { window.history.forward(); }
    </SCRIPT>
    </HEAD>
    <BODY onload="noBack();"
        onpageshow="if (event.persisted) noBack();" onunload="">
    

    编辑:注销后禁用检查:here

    【讨论】:

    • 以上代码一直停止返回按钮,但我只想在注销时停止返回按钮。
    【解决方案2】:

    您需要禁用仅在登录时可见的页面的浏览器缓存,以防止用户在退出后返回到他们登录时的页面。这样您就不必担心禁用后退按钮。如果他们尝试访问要求他们登录的页面,您会将他们重定向到登录页面。

    【讨论】:

    • 如何使用 javascript 或 jquery 禁用页面缓存?
    • @user1273915 你用什么来生成页面?不管做什么,都需要在&lt;head&gt;标签中添加这些元标签:&lt;META HTTP-EQUIV="Pragma" CONTENT="no-cache" /&gt; &lt;META HTTP-EQUIV="Expires" CONTENT="-1" /&gt;
    【解决方案3】:

    我不认为,禁用浏览器中的后退按钮是您想要的,或者不是您应该想要的!从安全的角度来看,您应该尝试销毁会话。并且您应该在页面的每个请求时证明权限。

    想想,你想归档什么 ;-)

    【讨论】:

    • 那我不明白你为什么要禁用后退按钮?
    • 因为注销后点击后退按钮,如果我遍历 AdminPanel 中的所有页面,它将在 Admin 菜单中移动。
    • 正如 Bernhard 所说,禁用浏览器缓存并确保您证明每个请求的会话权限...
    猜你喜欢
    • 2011-02-17
    • 1970-01-01
    • 2017-06-29
    • 2013-01-10
    • 2010-12-13
    • 2010-09-14
    • 2011-08-06
    • 2016-02-20
    • 1970-01-01
    相关资源
    最近更新 更多