我不时地在网页上看到下面的href。然而,我不明白这是要做什么或技术。有人能详细说明吗?
<a href="javascript:;"></a>
我不时地在网页上看到下面的href。然而,我不明白这是要做什么或技术。有人能详细说明吗?
<a href="javascript:;"></a>
当前回答
请参考:
<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>
其他回答
<a>元素是无效的HTML,除非它有href或name属性。
如果你想让它正确地呈现为链接(如带下划线的,指针等),那么只有当它有href属性时才会这样做。
因此,这样的代码有时被用作创建链接的一种方式,但不必在href属性中提供实际的URL。开发人员显然希望链接本身不做任何事情,这是他所知道的最简单的方法。
他可能在其他地方有一些javascript事件代码,当链接被点击时触发,这将是他想要实际发生的,但他希望它看起来像一个正常的<a>标签链接。
一些开发人员使用href='#'来达到同样的目的,但是这会导致浏览器跳转到页面顶部,这可能是不需要的。而且他不能简单地让href为空,因为href= "是一个回到当前页面的链接(即它会导致页面刷新)。
有办法解决这些问题。在href中使用空的Javascript代码就是其中之一,尽管这不是最好的解决方案,但它确实有效。
旧线程,但我认为我只是补充,开发人员使用这个结构的原因不是为了创建一个死链接,而是因为javascript url出于某种原因不能正确地传递对活动html元素的引用。
例如handler_function(this.id)作为onClick工作,但不是作为javascript URL。
因此,在编写迂规的标准代码(需要手动调整每个超链接的调用)和稍微不标准的代码(可以编写一次并在任何地方使用)之间,需要做出选择。
请参考:
<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>
<a href="javascript:void(0);"></a>
Javascript:告诉浏览器要编写Javascript代码
由于这是一个样式问题,而不是用无效的语法污染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; }