window.history.back()不能正常工作。

11

我无法让这个工作起来。我已经尝试了很长时间。请帮帮我。

<script>
function goBack() {
    window.history.back()
}
</script>

<button onclick="goBack()">Go Back</button> 

4
使用 window.history.go(-1)。 - Sunand
控制台是否提示“goBack()未定义”?因为window.history.back()正常工作。 - im_brian_d
8个回答

10
请看Inconsistency with window.history.back()这个问题。

this


(注意:保留原有HTML标签,请勿解释)
<button type="button" onclick="goBack()">Go Back</button> 

也许这正是你在寻找的。

如Kevin B所建议

浏览器可能会将按钮解释为提交按钮并提交表单,从而导致页面刷新。添加type="button"将防止此情况发生。


非常感谢,我一直无法解决这个问题。现在它完美地运行了! - RustemMazitov

4
这可以防止它显示正常工作。
<a href="#" onclick=DoSomething()>Stop it working</a>

这是因为href会在历史记录中添加一个新页面,再次呈现当前页面。

顺便提一下,如果你调用

event.preventDefault()

在DoSomething中,#将永远不会被添加到历史记录中,并且它看起来会再次正常工作。

4

首先,您需要确保脚本标签设置正确的类型:

<script type="text/javascript">
...
</script>

此外,我建议使用历史对象的“go”函数,因为它更兼容性更高。为了简化事情,您可以这样做:
<button onclick="javascript:history.go(-1)">Go Back</button>

希望这能帮到你。

4
这对我有用。
    <button type="reset" onclick="goBack()">Go Back</button> 

2
<a href="#" onclick="history.back();return false;">Go Back</a>

“return false;”这一部分对我有所帮助,解决了问题。


1

window.history.back() 方法如果没有任何先前的 URL 可以返回,将无法工作。您的程序需要有一个起始 URL,并且您需要使您的程序向前移动到下一页,才能够前进和后退。


1
尝试阻止按钮的默认行为。请注意,如果您没有访问当前选项卡中的其他页面,则不会发生任何事情。
Javascript:

<button id="goBack">Go Back</button>
<span id="result"></span>
<script>
document.getElementById("goBack").addEventListener("click", function(event){
event.preventDefault();
document.getElementById("result").innerHTML = "Going back";
window.history.back();
});
</script>

jQuery:

<button id="goBack">Go Back</button>
<span id="result"></span>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$('#goBack').click(function(event){
event.preventDefault();
document.getElementById("result").innerHTML = "Going back";
window.history.back();
});
</script>


0
实际上,要使这个工作正常,您需要从其他网站重定向到该网站,或者如果您在本地HTML文件上进行操作,则可以打开任何网站,并将本地文件的链接粘贴到该标签页的搜索栏中(不要打开新标签页),然后它就会起作用。基本上,这个功能只是按下浏览器的返回按钮,所以您需要有一些内容,以便它可以返回。

1
目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接