好的,所以这个有一些类似的线程,但我找不到任何东西钉在头上,所以我们走了。
我正在尝试使用锚标记模拟链接,如下所示:
<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>
再次感谢大家。
---结束编辑---
答案 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>