2012-12-12 22 views
0

好吧,这个人有一些类似的线程,但我找不到任何钉在头上的东西,所以我们走了。如何指定锚标签的行为像超链接,没有href且没有锚名称?

我试图使用锚标记,模拟链路,像这样:

<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> 

再次感谢大家。

---编辑完---

+1

“我怎样才能正确地强制链接以与“HTML链接”相同的方式显示?“你的意思是在状态栏中? – j08691

+0

我不知道该方法的名称是如何相关的... 而我的意思是从客户角度来看鼠标悬停,j08691。 为什么我不能提前感谢人们-_- – DigitalJedi805

+0

这里没有人有幽默感。把键盘放下! – DigitalJedi805

回答

1

如果您在onclick属性的末尾使用return false,它将不会在任何位置滚动。

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

,或者你可以让你的函数返回false,并返回其结果(假)以及在onclick属性,它是较短的执行:

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

设置hrefjavascript:void(0);,这将意味着浏览器显示的链接,如果它有一个真正的href

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

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

This question有关于使用javascript:void(0)的一些很好的信息。

1

将javascript函数设置为href。

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

编辑:只是要说明一些认为这种不好的做法。

+2

这个问题是,如果您通过Javascript而不是内联设置单击事件处理程序,则最终将同时使用onclick处理程序和调用该函数的href。与此相关的另一个问题是,您不像onclick处理程序那样使用'this'引用对象。你不能传递任何关于对象的东西。 – MrCode

+0

所以实际上这仍然达到了我的目的,但扩展性较差。 (可扩展性如何不是一个单词...) – DigitalJedi805