这段代码在FF中运行良好,可以将用户带回上一页,但在Chrome中无法实现:
<a href="www.mypage.com" onclick="javascript:history.go(-1)">Link</a>
怎么修复?
这段代码在FF中运行良好,可以将用户带回上一页,但在Chrome中无法实现:
<a href="www.mypage.com" onclick="javascript:history.go(-1)">Link</a>
怎么修复?
你应该使用 window.history
并返回 false,这样浏览器就不会导航到 href
(即默认行为)。
<a href="www.mypage.com" onclick="window.history.go(-1); return false;"> Link </a>
www.mypage.com
)的链接,只是为了用 on-click 事件覆盖它,并执行其他操作,而不是将用户重定向到该页面? - undefinedhistory.go(-1)
更好。<a href="#" onclick="location.href = document.referrer; return false;"> Go TO Previous Page</a>
为什么不抛弃内联JavaScript,改用以下方式?
内联JavaScript被认为是一种过时的不良实践。
注释
为什么使用addEventListener?
addEventListener是W3C DOM中指定的注册事件监听器的方法。它的好处如下:
它允许添加多个事件处理程序。这对于需要与其他库/扩展一起使用的DHTML库或Mozilla扩展特别有用。它使您对激活侦听器的阶段(捕获vs.冒泡)具有更精细的控制。它适用于任何DOM元素,而不仅仅是HTML元素。
<a id="back" href="www.mypage.com"> Link </a>
document.getElementById("back").addEventListener("click", window.history.back, false);
在jsfiddle上
试试这个:
<a href="www.mypage.com" onclick="history.go(-1); return false;"> Link </a>
<button onclick="goBack()">Go Back 2 Pages</button>
<script>
function goBack() {
window.history.go(-2);
}
</script>
javascript:history.go(-1);
window.history.go(-1);
其中-1表示您要返回的页面数(-1,-2 ...等),而
return false
是必需的,以防止默认事件。
例如:
<a href="#" onclick="window.history.go(-1); return false;"> Link </a>
对我来说有效。在Google Chrome上使用javascript:history.go(-1)
没有任何问题。
javascript:history.go(-1)
。只需使用这行代码,无需在href属性中放置任何内容:
<a href="" onclick="window.history.go(-1)"> Go TO Previous Page</a>
使用带有URL的链接,并具有覆盖它的on-click事件不是一个好主意。如果用户在新标签页中打开链接会怎样?
考虑:
<button id="back">Go back</button>
<script>
document.querySelector("#back").addEvenetListener("click", e => {
history.go(-1);
});
</script>
或者如果你必须使用链接,至少:
<a href="javascript:history.go(-1)">Go back</a>