<a href onClick="return false;">无法在Safari/iOS中运行?

Gad*_*i A 4 html ios

我在我的页面中有这个代码:

<a href onClick="return false;">Press me!</a>
Run Code Online (Sandbox Code Playgroud)

该链接位于具有有用的onClick事件的范围内.

现在,在Chrome和Firefox中,这非常有效.点击链接,执行有用的事件,每个人都很开心.在使用默认Safari浏览器的iOS(iPhone和iPad)中,这会失败 - 在单击链接后,将重新加载整个页面,并且永远不会执行有用的事件.

我也试过了

<a href="#" onClick="return false;">Press me!</a>
Run Code Online (Sandbox Code Playgroud)

我明白这是错误的做法.在Chrome和Firefox中,它运行良好,但在iOS的Safari中,它跳回到页面的开头(但是DID执行有用的事件,所以从某种意义上说它更好).

我错过了什么?

wjl*_*wjl 7

你可以设置href="#",我注意到同样跳到页面顶部.#是一个页内锚,我相信它指的是页面顶部.我不清楚它的定义行为.但是,唉,你想要取消它.

在iPhone 5.0.1模拟器中,两种取消方法的组合起作用并且不会滚动到顶部.这是我的完整test.html档案.它适用于模拟器,Chrome和OS X Safari.

<div style="height: 1000px; background-color: blue;"></div>
<a href="#" onClick="event.preventDefault(); return false;">Poke it!</a>
<div style="height: 1000px; background-color: red;"></div>
Run Code Online (Sandbox Code Playgroud)

为了记录,删除event.preventDefault();重复您的错误.