Javascript 禁用浏览器后退按钮可以工作,但它首先向后浏览,然后向前浏览

Javascript 禁用浏览器后退按钮可以工作,但它首先向后浏览,然后向前浏览,javascript,asp.net,asp.net-mvc,asp.net-mvc-4,Javascript,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我必须禁止用户浏览浏览器中的上一页 为了实现这一点,除了从服务器发送适当的响应标题外,我还将下面的代码放在我的ASP.NET MVC应用程序的布局页面中: function noBack() { window.history.forward(); } $(document).ready(function () { $(document).on("pageshow", "body", function (event) { if (event.persisted)

我必须禁止用户浏览浏览器中的上一页

为了实现这一点,除了从服务器发送适当的响应标题外,我还将下面的代码放在我的ASP.NET MVC应用程序的布局页面中:

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

$(document).ready(function () {
    $(document).on("pageshow", "body", function (event) {
        if (event.persisted)
            noBack(); 
        });
});


...

<body onload = "noBack();">
我正在寻找两个问题的解决方案:

1目前,此代码在所有浏览器上的行为都很奇怪,但一致。它所做的是,当我按下任何浏览器(包括IE)上的“后退”按钮时,它会返回到上一页浏览片刻,它会加载并很好地显示它,然后再次向前浏览以返回到我们按下“后退”按钮时正在查看的页面

这令人恼火。我怎样才能摆脱这个

2据我所知,pageshow活动不受IE支持。请告诉我是否有IE的替代方案?除了FireFox和Chrome,我还需要支持IE8及以上版本


旁注:我知道弄乱客户端/用户的浏览器不是一个好做法,最好让服务器发送适当的响应头来禁用输出缓存,但我的客户端坚持我也禁用/不允许浏览器的后退和前进按钮功能。

在javascript文件中,只需将其放在文件顶部或您的_布局页面上:

window.history.forward();

每次加载脚本时,它都会前进。如果它不能前进,它将一事无成。这基本上禁用了后退功能。

谢谢。多好的回答啊。简单、朴实、正确:-