我正在一个环境中构建一个应用程序,我只能使用本地文件系统和浏览器(即不能运行服务器)。我在许多页面上都有一个通用的“返回”链接,主要只是调用history.back()
。它看起来像下面这样:
function goBack(evt) {
// Check to see if override is needed here
// If no override needed, call history.back()
history.back();
}
$('#my-back-button').click(goBack);
此代码在Firefox和IE6中运行良好(不要问),但在Chrome中失败。有关为何和/或可能的解决方法的任何建议?
我也试过了history.go(-1);
这也不起作用。
答案 0 :(得分:22)
由于某些原因,在chrome中,您必须在调用history.go(-1)
后添加return false将您的功能更改为:
function goBack(evt) {
// Check to see if override is needed here
// If no override needed, call history.back()
history.go(-1);
return false;
}
答案 1 :(得分:3)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
function goBack(evt) {
// Check to see if override is needed here
// If no override needed, call history.back()
history.back();
$('#my-back-button').forwardEvent('click');
}
$('#my-back-button').click(goBack);
/**
* chrome workaround for triggering click events
* @param {event} event event
* @return {undefined} Returns undefined
*/
$.fn.forwardEvent = function(event) {
this.each(function() {
if (this.dispatchEvent) {
if (event.originalEvent) {
event = event.originalEvent
}
try {
this.dispatchEvent(event);
} catch(error) {
$(this).trigger(event);
}
}
else {
$(this).trigger(event);
}
});
return this;
};
});
</script>
<input type="button" value="<<<<" id="my-back-button">
</body>
</html>
答案 2 :(得分:0)
对于Chrome,请使用以下代码:
<a href="#" onclick="javascript:history.go(-1);return false;" style="text-decoration:underline;">Back</a>
只有这段代码可以使用..
我希望它会有所帮助...... 快乐的编码.. :)
答案 3 :(得分:0)
var referrer = document.referrer; window.location.replace(引荐);
使用此功能
答案 4 :(得分:-1)
晚聚会...这是另一个解决方案:您可以关闭window.history.go(-1)之后的窗口。这将起作用,因为chrome将使窗口保持打开状态,因此它将读取下一行。其他浏览器只会返回。
<script>
alert("Success!");
window.history.go(-1);
window.close();
</script>