Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iOS Safari中URL片段和onclick的奇怪行为_Javascript_Iphone_Safari - Fatal编程技术网

Javascript iOS Safari中URL片段和onclick的奇怪行为

Javascript iOS Safari中URL片段和onclick的奇怪行为,javascript,iphone,safari,Javascript,Iphone,Safari,在我的(iOS 4)iPod touch上的mobile Safari中,我遇到了一个奇怪的问题。 演示此问题的最小正文HTML是: <p> <a href="" onclick="event.preventDefault()">Click</a> </p> <p id="anchor"> Anchor </p> 锚定 当页面加载时,URL中没有#片段,单击链接将执行onclick javascr

在我的(iOS 4)iPod touch上的mobile Safari中,我遇到了一个奇怪的问题。 演示此问题的最小正文HTML是:

<p>
    <a href="" onclick="event.preventDefault()">Click</a>
</p>
<p id="anchor">
    Anchor
</p>

锚定

当页面加载时,URL中没有#片段,单击链接将执行onclick javascript,这将抑制链接的操作,并且(如预期的那样)不会发生任何事情

但是,如果页面加载了有效的URL片段,#锚定在上面的示例中,则单击链接会导致页面跳转到id为“锚定”的段落(如页面最初加载时)

我找不到绕过这一点的办法;任何建议都将不胜感激。

这是因为
href=“”
(不正确)与
href=“.”“
(正确)是相同的,而不是将当前url放在href中


如果你只是想做一个按钮,你可以使用一个带有CSS的
,比如
光标:指针等。

我应该补充一点,如果
onclick
中使用了
return false
,无论
href
中的URL如何,都会观察到同样的行为。