带有“#”的href,这是不好的做法吗?

Sha*_* Le 2 html jquery unobtrusive-javascript

CSS标记侦探建议在存在带有href =#的链接时改善标记。

拥有href =#是不良做法还是不良标记?在某些情况下,尤其是。对于不打扰的人,这是唯一的方法,对吗?

这是一个需要改进的示例:

<a href="#">Cancel</a>
Run Code Online (Sandbox Code Playgroud)

Pat*_*and 5

这是一种不好的做法,因为如果没有JavaScript,它就毫无意义。如果您只有#作为href的链接,那么当该链接与之交互时,您可能依赖JavaScript执行。因此,基本上,您应该执行以下操作之一:

  1. 创建一个模仿JavaScript将执行的操作的正确URL。这样,禁用了JavaScript的用户仍然可以访问该功能。如果启用了JavaScript,则可以拦截点击,取消默认操作(导航到链接URL),然后执行通常的渐进增强逻辑。

  2. 如果您没有后备广告,或者如果没有JavaScript就无法使该功能正常工作,那么在页面加载时使用JavaScript动态添加链接。这样一来,禁用了JavaScript的用户将永远无法看到对他不起作用的链接。您可以将其与<noscript>标签结合使用,以通过禁用JavaScript来通知用户他缺少您网站的某些功能。