繁体   English   中英

onclick="javascript:history.go(-1)" 在 Chrome 中不起作用

[英]onclick="javascript:history.go(-1)" not working in Chrome

此代码在 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>

使用下面的一个,它比history.go(-1)更好。

<a href="#" onclick="location.href = document.referrer; return false;"> Go TO Previous Page</a>

为什么不摆脱内联的JavaScript并做这样的事情呢?

内联javascript被认为是不好的做法,因为它已经过时了。

笔记

为什么要使用addEventListener

addEventListener是注册W3C DOM中指定的事件侦听器的方法。 它的好处如下:

它允许为事件添加多个处理程序。 这对于即使使用其他库/扩展也需要正常工作的DHTML库或Mozilla扩展特别有用。 当监听器被激活时(捕获与冒泡),它可以让您对阶段进行更精细的控制。它适用于任何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>

它对我有用。 Google Chrome上使用javascript:history.go(-1)没问题。

  1. 要使用它,请确保您应该在该选项卡上有历史记录。
  2. 输入URL空间上添加javascript:history.go(-1)
  3. 它应该工作几秒钟。

使用简单的这个行代码,不需要在href属性中放任何东西:

<a href="" onclick="window.history.go(-1)"> Go TO Previous Page</a>

使用带有 URL 的链接到一个页面并使用覆盖它的点击事件不是一个好主意。 如果用户在新标签页中打开链接怎么办?

考虑:

<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>

javascript:history.go(-1);

用于较旧的浏览器.IE6 其他浏览器兼容性尝试

window.history.go(-1);

其中-1表示要返回的页数(-1,-2 ......等),并且需要return false以防止出现默认事件。

例如 :

<a href="#" onclick="window.history.go(-1); return false;"> Link </a>   

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM