33

我想禁用网站的后退按钮。

每当用户单击浏览器后退按钮时,它应该无法进入用户之前访问过的页面。

4

4 回答 4

265
history.pushState(null, null, document.title);
window.addEventListener('popstate', function () {
    history.pushState(null, null, document.title);
});

此脚本将覆盖在当前页面状态下来回导航的尝试。


更新:

一些用户报告说使用document.URL而不是更成功document.title

history.pushState(null, null, document.URL);
window.addEventListener('popstate', function () {
    history.pushState(null, null, document.URL);
});
于 2014-09-04T12:14:11.380 回答
24

不能禁用浏览器后退按钮功能。唯一能做的就是阻止它们。

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

<script>
    function preventBack() {
        window.history.forward();
    }

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

假设有两个页面Page1.phpPage2.php并且Page1.php重定向到Page2.php.

因此,为了防止用户Page1.php使用后退按钮进行访问,您需要将上述脚本放在Page1.php.

更多信息:参考

于 2013-11-12T10:36:34.970 回答
-11

我们的方法很简单,但很有效!:)

当用户单击我们的注销按钮时,我们只需打开登录页面(或任何页面)并关闭我们所在的页面......模拟在新浏览器窗口中打开而没有任何历史可返回。

<input id="btnLogout" onclick="logOut()" class="btn btn-sm btn-warning" value="Logout" type="button"/>
<script>
    function logOut() {
        window.close = function () { 
            window.open('Default.aspx', '_blank'); 
        };
    }
</script>
于 2014-08-22T19:14:21.690 回答
-39

你不能,也不应该。

所有其他方法/替代方案只会导致非常糟糕的用户参与度。

这是我的意见。

于 2013-11-12T10:38:43.543 回答