禁用浏览器后退按钮javascript

时间:2014-03-13 07:44:42

标签: c# javascript asp.net-mvc-4

我正在使用带有java脚本的MVC 4。

今天需要在所有浏览器中禁用后退按钮,需要在浏览器后退按钮的帮助下点击退出按钮后阻止返回上一页(主页)。

帮助我谢谢。

5 个答案:

答案 0 :(得分:3)

试试这个

JavaScript代码示例

javascript代码到我们需要禁用浏览器后退按钮的所有页面。

<script type="text/javascript">    

   //Disable Back Button In All Browsers.
        function DisableBackButtonAllBrowsers() {
            window.history.forward()
        };
         DisableBackButtonAllBrowsers();
        window.onload = DisableBackButtonAllBrowsers;
         window.onpageshow = function (evts) { if (evts.persisted) DisableBackButtonAllBrowsers(); }; 
        window.onunload = function () { void (0) };
    </script>

mvc 4中的ActionResult代码示例

对于在MVC 4中注销的ActionResult的响应代码。即

/// <summary> /// Logs user out and renders login <see cref="View"/> /// </summary> /// <returns>Login <see cref="View"/></returns>
    public ActionResult Logout()
    {
            //Disable back button In all browsers.
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
            Response.Cache.SetNoStore();

            FormsAuthentication.SignOut();
            return View("Login");
     }

答案 1 :(得分:0)

试试这个,它可以帮到你。

链接:http://hightechnology.in/how-to-disable-browser-back-button-in-asp-net-using-javascript/

Javascript代码:

<script type = "text/javascript" >
function preventBack(){window.history.forward();}
setTimeout("preventBack()", 0);
window.onunload=function(){null};
</script>

答案 2 :(得分:0)

您可以使用如下:

<script type="text/javascript" language="javascript">
    function DisableBackButton() {
    window.history.forward()
    }
    DisableBackButton();
    window.onload = DisableBackButton;
    window.onpageshow = function(evt) { if (evt.persisted) DisableBackButton() }
    window.onunload = function() { void (0) }
</script>

答案 3 :(得分:0)

可能重复.. 这里有一个解决方案:

set cachebality to noCache.. 
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache)

Disable browser "back" button
Disable browser's back button

答案 4 :(得分:0)

理想情况下,您希望首先阻止您的会话历史记录填充。

location.replace(url)

来自:https://developer.mozilla.org/en-US/docs/Web/API/Location/replace

  

Location.replace()方法用当前提供的URL替换当前资源。使用replace()后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用后退按钮导航到该页面。

如果会话历史记录为空,则禁用后退按钮。如果你的应用程序在很大程度上依赖于表单提交,那么jQuery可以很容易地将表单变量转换为查询字符串,以便与location.replace一起使用。

function submitForm() {
    // this eliminates issues with the back button
    window.location.replace('?' + jQuery.param(jQuery('form').serializeArray()));
}