使用“javascript://”作为防止动作的链接是错误的还是坏的做法?

时间:2011-03-26 02:51:51

标签: javascript jquery hyperlink

我刚看到this question 它让我想起了我通常做的一些事情,以防止某些链接的默认操作:

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

然后我用jQuery点击功能处理它。我已经在一些地方看到人们使用

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

我知道更好的方法是使用

e.preventDefault();

但做我做的事情是错误还是坏事?这实际上是如何运作的?

2 个答案:

答案 0 :(得分:5)

这有点不幸,因为如果用户按Ctrl +单击或右键单击并显示“在新标签中打开”,他们将获得一个完全空白的页面。

使用<a href="#">something</a>preventDefault会更好,因为在这种情况下,按住Ctrl +单击会将它们带回到他们所在的页面。

当然,最好的情况是,如果您可以将href指向实际有意义的页面,则JavaScript会逐渐增强覆盖该有意义默认值的体验。一个很好的例子就是弹出窗口,但是可以做更多的工作来做到这一点。

答案 1 :(得分:3)

这是不好的做法,因为存在更好的机制,即event.preventDefault()

此外,javascript:伪协议只应用于bookmarklet。