webkit / Chrome history.back(-1) onclick vs href

Posted

技术标签:

【中文标题】webkit / Chrome history.back(-1) onclick vs href【英文标题】: 【发布时间】:2013-01-26 18:33:02 【问题描述】:

每个人都知道,但我会重复这个问题:

<a href="#" onClick="history.go(-1)">Back</a>

不适用于基于 WebKit 的浏览器(Chrome、Safari、Mxthon 等)

另一种不起作用的方法(应该有效)是:

<a href="#" onclick="javascript:window.history.back(-1);">Back</a>

您可以这样做 - 有效! (但那是在 url 提示中显示 JS)

<a href="javascript:window.history.back(-1);">Back</a>

要在 onclick 事件中使用 JS,您可以这样做(有效,但请参阅下面的 cmets):

<a onclick="javascript:window.history.back(-1);">Please try again</a>

缺少 href 会使其工作,但不会显示为可点击链接,您可以应用 css 使其看起来像链接,应用蓝色、下划线和光标手,但谁想要呢?

【问题讨论】:

1) 提出问题并立即发布答案有什么意义? 2)onclick="javascript:"是废话,省略javascript: 3)history.back()不接受任何参数,只是back()相当于history.go(-1) 请不要在标题中添加resolved。如果您的回答有效,请采纳。 1) 重点是让谷歌为寻找答案的人找到问题,马上回答是因为我花了一些时间测试每个案例和浏览器,为什么不呢?回复:3)这是我发现其他人发布的内容,我并不是说他们是正确的。我只是列出了方法列表并指出了我能看到的内容,并给出了在列出的浏览器中(对我来说)有效的答案。批评总是很容易:) 小心 【参考方案1】:

最终可行的解决方案,在 IE、FF、Safari、Chrome、Opera、Maxthon 中测试:

<a href="#" onclick="window.history.back();return false;">Back</a>

return false 后不要忘记分号;

【讨论】:

在事件处理程序中写 javascript: 是没有意义的。 令人惊讶的是,有多少种方法适用于不同的人和浏览器。如果它现在不起作用,那么可能新版本的浏览器现在解释不同...... 拥有内联 javascript 一开始可能不是一个好主意。见programmers.stackexchange.com/questions/86589/… 我不确定我的答案为什么以及如何一直被编辑,我建议发布自己的答案而不是修复我的答案,它不再具有我的权限 谢谢你,这对我有用,但你能解释一下为什么,请添加一个“return false”声明让它在 safari (ios) 上工作吗?【参考方案2】:

它甚至可以使用 history.go(-1)...

对于我测试过的 Chrome、IE、Mozilla,工作正常。使用下面的代码:

<a href="#" onclick="history.go(-1);return false;" style="text-decoration:underline;">Back</a>

【讨论】:

【参考方案3】:

这是唯一适用于所有当前浏览器的东西:

<script>
function goBack() 
    history.go(-1);

</script>
<a onclick="goBack()">Back</a>

【讨论】:

以上是关于webkit / Chrome history.back(-1) onclick vs href的主要内容,如果未能解决你的问题,请参考以下文章

在 Chrome/WebKit/Safari 中禁用锚点

Chrome/Safari/Webkit 上的额外填充——有啥想法吗?

如何获取 Chrome / WebKit 中过渡的元素的当前颜色?

Safari/Chrome (Webkit) - 无法隐藏 iframe 垂直滚动条

-webkit-font-smoothing 属性在 Chrome 中无效

Chrome(webkit)中浮动元素中的用户文本选择选择更多文本[关闭]