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/Safari/Webkit 上的额外填充——有啥想法吗?
如何获取 Chrome / WebKit 中过渡的元素的当前颜色?
Safari/Chrome (Webkit) - 无法隐藏 iframe 垂直滚动条