【发布时间】:2026-01-03 17:20:04
【问题描述】:
我想防止浏览器后退按钮不转到上一页。
为此,我尝试了以下代码:
<script type = "text/javascript" >
function preventBack() { window.history.forward(); }
setTimeout("preventBack()", 0);
window.onunload = function () { null };
</script>
但是当我一次连续点击浏览器后退按钮 2-3 次时,它再次重定向到上一页。所以我上面的代码失败了。
我不希望用户转到上一页。
我也试过这段代码:
<script>
$(document).ready(function () {
function disableBack() { window.history.forward() }
window.onload = disableBack();
window.onpageshow = function (evt) { if (evt.persisted) disableBack() }
});
</script>
但此代码正在从浏览器中删除滚动条,我无法滚动页面。
请回复一些解决方案。我尝试搜索很多文章,但找不到任何解决方案。
【问题讨论】:
-
我强烈建议考虑其他一些选项。在大多数情况下,像这样劫持后退按钮是糟糕的用户体验,这可能就是你被否决的原因。用户不应该觉得网站正在与他们作对,或“破坏”他们的浏览器。例如。如果返回会使您的应用处于不良状态,请让上一页呈现一条消息,解释原因。
标签: javascript asp.net