如何使用 javascript 在按下浏览器后退按钮时阻止用户返回上一页。非常感谢任何建议。**
谢谢并恭祝安康
栏干
谢天谢地,这是不可能的。您无法阻止用户的后退按钮工作,但您可以在技术上更改 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)
}
这将使用同一页面填充浏览器的历史记录,从而有效地禁用后退按钮以进行任何实际使用。
在页面加载时使用它,它将阻止用户从它放置的页面导航回来。
<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>
为什么在按下后退按钮时不确认用户操作?
就像是
window.onbeforeunload = function(){
return "Message here";
}
它将防止用户不小心单击后退、前进或关闭窗口并直接更改 url。
通过使用 javascript,您可以做到这一点。
参考这个,
http://www.htmlgoodies.com/tutorials/buttons/article.php/3478911
这可能会帮助你
我的解决方案没有任何确认和无用的历史填充:
加载时添加一个虚拟历史实例。如果单击 btn,请添加另一个。
if (window.history && history.pushState) {
addEventListener('load', function() {
history.pushState(null, null, null);
addEventListener('popstate', function() {
history.pushState(null, null, null);
});
});
}