2

如何使用 javascript 在按下浏览器后退按钮时阻止用户返回上一页。非常感谢任何建议。**

谢谢并恭祝安康

栏干

4

5 回答 5

2

谢天谢地,这是不可能的。您无法阻止用户的后退按钮工作,但您可以在技术上更改 url 足够多次,甚至尝试使用后退按钮进行导航变得毫无意义。

// treat the URL changes as a non-external page (the page won't reload)
document.location.href += "?"; 

// Fill up the browser's history
for(var i = 0; i < 100; i++){
    document.location.href += "a"; 
    document.location.href = document.location.href.substring(0, document.location.href.length-1)
}

这将使用同一页面填充浏览器的历史记录,从而有效地禁用后退按钮以进行任何实际使用。

于 2013-10-24T06:03:38.653 回答
2

在页面加载时使用它,它将阻止用户从它放置的页面导航回来。

 <script type = "text/javascript">
    function changeHashOnLoad() {
        window.location.href += "#";
        setTimeout("changeHashAgain()", "50");
    }

    function changeHashAgain() 
    {          
        window.location.href += "1";
    }

    var storedHash = window.location.hash;
    window.setInterval(function () {
        if (window.location.hash != storedHash) {
            window.location.hash = storedHash;
        }
    }, 50);

    </script>
于 2013-10-24T06:03:44.297 回答
1

为什么在按下后退按钮时不确认用户操作?

就像是

window.onbeforeunload = function(){
    return "Message here";
}

它将防止用户不小心单击后退、前进或关闭窗口并直接更改 url。

于 2013-10-24T06:46:21.770 回答
0

通过使用 javascript,您可以做到这一点。

参考这个,

http://www.htmlgoodies.com/tutorials/buttons/article.php/3478911

这可能会帮助你

于 2013-10-24T06:00:09.270 回答
0

我的解决方案没有任何确认和无用的历史填充:

加载时添加一个虚拟历史实例。如果单击 btn,请添加另一个。

if (window.history && history.pushState) {
    addEventListener('load', function() {
        history.pushState(null, null, null);
        addEventListener('popstate', function() {
            history.pushState(null, null, null);
        });    
    });
}

参考:https ://stackoverflow.com/a/45844767/13672902

于 2021-06-25T08:50:48.600 回答