window.history.back()无效。

时间:2014-09-04 19:21:22

标签: javascript html

我无法让它发挥作用。我已经尝试了很多年。请帮我。

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

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

6 个答案:

答案 0 :(得分:7)

请查看this question: Inconsistency with window.history.back()

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

可能是您正在寻找的

As Kevin B suggests

  

浏览器可以将按钮解释为提交按钮和   提交表单,从而导致页面刷新。添加type =&#34;按钮&#34;   会阻止这种情况。

答案 1 :(得分:3)

首先,您应该确保脚本标记具有正确的类型集:

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

另外,我建议使用历史对象的“go”功能,因为兼容性更高。为简化起见,您可以简单地执行此操作:

<button onclick="javascript:history.go(-1)">Go Back</button>

希望这有帮助。

答案 2 :(得分:3)

这对我有用

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

答案 3 :(得分:1)

如果window.history.back()方法没有任何以前的网址,则var dataset = []; function addData(name,wlevel){ var tmpObj = new Object; tmpObj.name = name; tmpObj.wlevel = wlevel; dataset.push(tmpObj); } addData("nmgn",12.1); addData("mstr",24.8); for(i=0 ; i < dataset.length ; i++){ document.write("<p>" + dataset[i].name + ": "); document.write(dataset[i].wlevel + "</p>"); } 方法无效。您的程序需要有一个起始URL,您需要让您的程序前进到下一页才能继续前进。

答案 4 :(得分:1)

这可以阻止它显示出来

<a href="#" onclick=DoSomething()>Stop it working</a>

那是因为href会在历史记录中有效地添加新页面,再次显示当前页面

如果你打电话

event.preventDefault()

在DoSomething中,#永远不会被添加到历史记录中,它似乎再次起作用

答案 5 :(得分: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>