【问题标题】:Which syntax is correct? [duplicate]哪种语法是正确的? [复制]
【发布时间】:2015-03-25 06:58:10
【问题描述】:

<a href="javascript:;">..</a><a href="#"> .. </a> 做同样的工作。

我看过第一个很多次,通常我使用第二个。有人能区分这两者吗?

【问题讨论】:

标签: javascript html


【解决方案1】:

不,它们是两个不同的东西:

<a href="javascript:;">..</a> 是什么都不做的 javascript。

<a href="#"> .. </a> 是一个将用户带到页面顶部的锚标记。

在语法上它们都有效,在语义上它们都是错误的(假设您的预期目的不是将用户链接到页面顶部)。从语义上讲,如果您没有链接到某个东西,则不应使用锚标记。

可以在此处找到有关此主题的进一步讨论:What does href expression <a href="javascript:;"></a> do?

【讨论】:

  • 我同意,但不幸的是,这是一种非常常见的模式(空锚),被一些 css/js 库所强制。这也是一种禁用旧浏览器(或纯 js 方法)上的链接的方法。 Js version 还有另一个用途:它不会影响浏览器 history 并且在点击时不会移动到页面顶部(以及其他肮脏的用途,例如用户不会查看链接的 URL,它可能会在 Ajax 调用中进行预处理/后处理)。
猜你喜欢
  • 2013-03-15
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 2011-09-12
  • 2015-04-24
  • 2021-12-30
  • 1970-01-01
  • 2013-09-12
相关资源
最近更新 更多