如何指定锚标记的行为类似于超链接,没有href且没有锚名称?

时间:2012-12-12 18:09:21

标签: javascript html hyperlink onclick anchor

好的,所以这个有一些类似的线程,但我找不到任何东西钉在头上,所以我们走了。

我正在尝试使用锚标记模拟链接,如下所示:

<a onClick="javascript: DownloadPorn();">Click Here!</a>

所有这一切都很好,花花公子;链接显示,我可以单击它,我的javascript方法已成功执行。

这里的问题是,如何正确强制链接以与实际“HTML链接”相同的方式显示?或者更确切地说,以同样的方式,就好像我在上面提到的标签中有一个href一样;像这样:

<a href="#" onClick="javascript: DownloadMorePorn();">Click Here!</a>

现在......此代码片段强制链接以我期望的方式显示,但在使用此方法时,单击链接时,滚动位置会弹回到顶部。

很明显,这不是我想要开发的框架的预期行为。如果有人有任何建议可以克服这个问题,我将非常感谢您的意见。

---在输入这一切时,我认为我可以在屏幕顶部放置一个静态锚点(比如0,0或 - , - ),并强制我的所有链接引用该锚点。如果有人在这个解决方案中看到任何可行性,我可能会探索它。

---编辑---

一般承认的答案:

为了使锚表现为超链接,而不操纵浏览器当前位置;利用一个Javascript方法返回href属性中的任何内容(?),或者在一个锚的备用事件处理程序中返回'false'的有效返回值,I.E。 onClick方法。

可能的解决方案:

<a href="javascript: DoSomething();">Link</a>
<a href="javascript: void(0);" onClick="javascript: DoSomething();">Link</a>
<a href="#" onClick="javascript: DoSomething(); return false;">Link</a>

再次感谢大家。

---结束编辑---

3 个答案:

答案 0 :(得分:1)

href设置为javascript:void(0);,这意味着浏览器会将链接显示为真实的href

<a href="javascript:void(0);" onClick="javascript: DownloadBooks();">Click Here!</a>

还有其他方法,例如将href设置为#,但显示的方法的优点是您不必担心返回false或指定return DownloadBooks()

This question提供了一些关于javascript:void(0)

的使用的良好信息

答案 1 :(得分:1)

将javascript函数设置为href。

<a href="javascript:DownloadPorn();">Click Here!</a>

编辑:请注意一些人认为这种不良做法。

答案 2 :(得分:1)

如果您在onclick属性的末尾使用return false,则无法在任何位置滚动。

<a href="#" onClick="someFunc(); return false;">Click Here!</a>

或者你可以使你的函数返回false,并返回它的结果(false),并在onclick属性中执行它,这个更短:

<script type="text/javascript">
function someFunc() {
    // all your function code here
    return false;
}
</script>
<a href="#" onClick="return someFunc()">Click Here!</a>