在移动设备中的safari下(iphone, ipad),<a href="#" onclick="return false">这种写法并未阻止浏览器的默认跳转行为,点击后页面的hash变了,页面滚动到最顶部,请问这是为什么呢?
例如下面这段代码,在移动设备中的safari点击后,始终会滚到页面顶部。。。:
<div style="height:1000px; width:100px"></div> <br /> <a href="#" onclick="return false">click me</a>
<a href="#" onclick="return false">click me</a>
改为:
<a href="javascript:void(0);" onclick="return false">click me</a>
试试
改为javscript:void(0) 当然是可以的,我只是不明白为什么 return false 未阻止默认行为?
stackoverflow上也有人提到了这个问题:
In mobile devices' safari, <a href=“#” onclick=“return false”> doesn't work, why?
就是我。。
@前端菜鸟: 呵呵,你是狡兔三窟啊
@前端菜鸟: 在return false后面加个分号试试
@dudu: 一样的,木有用。。。 唉,真要逼我全改写成恶心的 href="javscript:void(0)" 么。。 杯具
<a href="#" onclick="return false">click me</a>
因为 href="#" 默认链接到本页面,有些浏览器会重新载入本页面。
正解