我在一个被限制使用本地文件系统和浏览器的环境中构建应用程序(即,运行服务器不是一个选项)。我在许多页面上都有一个通用的"返回"链接,主要是调用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);
,它也不起作用。
由于chrome中的某些原因,您必须在调用历史记录后添加return false。go(-1)
将您的功能更改为:
function goBack(evt) {
// Check to see if override is needed here
// If no override needed, call history.back()
history.go(-1);
return false;
}
<!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>
var referrer=document.referrer;window.location.replacer(referrer);
使用它将工作
对于Chrome使用以下代码:
<a href="#" onclick="javascript:history.go(-1);return false;" style="text-decoration:underline;">Back</a>
只有此代码才能工作。。
我希望它能帮助。。。快乐编码..:)
<script>
alert("Success!");
window.history.go(-1);
window.close();
</script>