history.go(-1)不适用于chrome。还有其他选择

时间:2013-06-20 09:05:06

标签: javascript google-chrome

在我的项目中,我使用的是Javascript代码history.back();回到上一页。(如窗口上的后退箭头)。  这个功能在IE和Firefox上工作正常但在google crome上没有?

<input type="button" value="Go back" onclick="history.go(-1); return false" />

我收到错误

  

确认表格重新提交

     

此网页需要您之前输入的数据   正确显示。您可以再次发送此数据,但这样做可以   将重复此页面之前执行的任何操作。按“重新加载”   重新发送该数据并显示此页面。

谷歌搜索但是每个人都在建议history.go(-1);返回false;但它也不起作用。还尝试过history.back(),但这也没有帮助

3 个答案:

答案 0 :(得分:6)

在POST请求之后显示上一页(通常在提交表单时发生)。这意味着,要显示上一页,必须再次提交在POST请求中提交的表单数据。它与您的history.go(-1) Javascript无关,当您按下浏览器的后退按钮时也会发生这种情况。

您可以使用Post Redirect Get模式解决此问题。

您也可以在表单上使用GET:

<form action="..." method="GET">

但是,不要将此用于在服务器上添加数据的表单,或者每次用户使用后退按钮并返回此页面时都会提交。另见:When should I use GET or POST method?

答案 1 :(得分:0)

试试这个:

<script>
function goback() {
    history.go(-1);
}
</script>
<a href=”javascript:goback()”>Back</a>

适用于Chrome和其他浏览器。

以上是从以下文字中逐字复制的:

http://simonthegeek.com/technical/history-back-problems-with-chrome-and-safari/

答案 2 :(得分:-1)

我更喜欢客户端代码而不是骚扰我的服务器 我试过这个,它适用于所有浏览器:

<button onclick="javascript:window.history.back()">Back</button>  

修改
或者,您可以使用web cache存储哪个是您的最后一页,然后您可以轻松地在该页面上重定向..