我不时地在网页上看到下面的href。然而,我不明白这是要做什么或技术。有人能详细说明吗?

<a href="javascript:;"></a>

当前回答

有几种机制可以避免链接到达目的地。题目中的答案不是很直观。

一个更清晰的选项是使用href="#no",其中#no是文档中未定义的锚。

您可以使用更语义化的名称,如#disable或#action来增加可读性。

该方法的好处:

避免空href="#"的"移到顶部"效果 避免使用javascript

缺点:

必须确保在文档中没有使用锚名。 URL更改为将(不存在的)锚包含为片段,并创建一个新的浏览器历史记录条目。这意味着在点击链接后点击“返回”按钮不会像预期的那样运行。

由于<a>元素不充当链接,在这些情况下,最好的选择不是使用<a>元素,而是使用<div>并提供所需的链接样式。

其他回答

<a href="javascript:void(0);"></a>

Javascript:告诉浏览器要编写Javascript代码

这是一种让链接在点击时完全不做任何事情的方法(除非Javascript事件绑定到它)。

这是一种运行Javascript而不是跟随链接的方式:

<a href="Javascript: doStuff();">link</a>

当没有javascript要运行时(就像你的例子),它什么也不做。

旧线程,但我认为我只是补充,开发人员使用这个结构的原因不是为了创建一个死链接,而是因为javascript url出于某种原因不能正确地传递对活动html元素的引用。

例如handler_function(this.id)作为onClick工作,但不是作为javascript URL。

因此,在编写迂规的标准代码(需要手动调整每个超链接的调用)和稍微不标准的代码(可以编写一次并在任何地方使用)之间,需要做出选择。

由于这是一个样式问题,而不是用无效的语法污染HTML,你可以/应该使用一个W3有效的解决方案:

正确格式化HTML,不带href,遵循W3按钮可访问性指南。 使用CSS来修复在控件上应用可点击UX效果的初始目标。

这里有一个活生生的例子供您尝试用户体验。

HTML

    <a role="button" aria-pressed="false">Underlined + Pointer</a>
    <a role="button" aria-pressed="false" class="btn">Pointer</a>

CSS

    a[role="button"]:not([href]):not(.btn) { text-decoration: underline; }
    a[role="button"]:not([href]) { cursor: pointer; }

请参考:

<a href="Http://WWW.stackoverflow.com">Link to the website opened in different tab</a>
<a href="#MyDive">Link to the div in the page(look at the chaneged url)</a>
<a href="javascript:;">Nothing happens if there is no javaScript to render</a>