href用“#”,是不好的做法?

时间:2011-04-28 14:15:00

标签: jquery html unobtrusive-javascript

The CSS Markup Detective建议在存在与href =#。

的链接时改进标记

拥有href =#是一种不好的做法还是糟糕的标记?在某些情况下,尤其是对于不引人注目的这是唯一的方法,对吗?

以下是需要改进的示例:

<a href="#">Cancel</a>

4 个答案:

答案 0 :(得分:4)

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

  1. 创建一个合适的网址,模仿JavaScript可以执行的操作。这允许禁用JavaScript的用户仍然可以访问该功能。如果启用了JavaScript,您只需截取点击,取消默认操作(导航到链接网址),然后执行常用的渐进增强逻辑。

  2. 如果您没有回退,或者在没有JavaScript的情况下无法使该功能正常工作,则在页面加载时使用JavaScript动态添加链接。这样,禁用JavaScript的用户将无法看到无论如何都不适用于他的链接。您可以将其与<noscript>标记结合使用,通过禁用JavaScript来告知用户他错过了您网站的某些功能。

答案 1 :(得分:0)

我不认为这是一种不好的做法。最后,只是在生产中离开它是一种不好的做法。如果您正在使用页面内的标签,这也是一个很好的做法。

答案 2 :(得分:0)

我用href =“javascript:;”如果这是必需的。使用href =“#”将锚视为当前页面中的锚点,并可能导致意外行为(例如窗口/框架在点击时滚动到顶部)。

答案 3 :(得分:0)

这不是坏习惯,而且比href='javascript:;'好。如果你想阻止页面“跳跃”取消点击事件的传播或从onclick函数返回false。