为什么使用`javascript:void(0)`而不是`javascript:`作为href-do-nothing占位符?

为什么使用`javascript:void(0)`而不是`javascript:`作为href-do-nothing占位符?,javascript,html,href,placeholder,Javascript,Html,Href,Placeholder,我看到过href=“javascript:void(0)”我也看到过href=“javascript:;”我有什么理由不直接使用href=“javascript: 编辑:让我明确一点:我将此与一个onclick相结合,如果有必要使用该选项,我不反对使用return false。当然,只有在替代方案比javascript:更有意义的情况下,才会这样做 另外,我还没有看到第一段中对我的问题的答案(我想很明显)。谢谢,大卫。) 我看到过href=“javascript:void(0)”我也看到过hre

我看到过
href=“javascript:void(0)”
我也看到过
href=“javascript:;”
我有什么理由不直接使用
href=“javascript:

编辑:让我明确一点:我将此与一个
onclick
相结合,如果有必要使用该选项,我不反对使用
return false
。当然,只有在替代方案比
javascript:
更有意义的情况下,才会这样做

另外,我还没有看到第一段中对我的问题的答案(我想很明显)。谢谢,大卫。)

我看到过
href=“javascript:void(0)”
我也看到过
href=“javascript:;”
我有什么理由不直接使用
href=“javascript:


就我个人而言,我会避免使用任何一种。我会选择
onclick='return false;'href='#'

为什么??因为如果您将Javascript代码放在href中,当您将鼠标悬停在链接上时,它会显示在浏览器的状态栏中,就像其他URL一样。看起来很乱

事实上,由于它无论如何都会被忽略,您可以将任何您喜欢的URL放入
href
,而不仅仅是散列。散列是最安全的,以防您的用户禁用Javascript,但除此之外,它可以是任何内容


但我必须指出:使用带有href的
标记来创建一个无效的Javascript代码似乎比首先使用
标记更重要。我可以看到您希望如何在运行时启用和禁用链接,但简单地将href设置为void似乎毫无意义。如果它不是一个真正的链接,为什么不使用
或其他标签呢。如果您必须使它看起来像一个链接,那么在CSS中这样做很简单。

理想的情况是不在元素本身上放置任何代码,而是在脚本标记或外部文件中使用javascript并将事件处理程序绑定在那里。

最好不要使用这两种方法。
href
属性表示url。最好使用事件处理程序来获得所需的行为,这可能是
onclick
事件


在这种情况下,理想的行为显然是什么也不做。首先,当锚定标记没有链接到任何地方时,为什么要使用锚定标记呢?其次,这可以通过防止事件冒泡来处理,方法是让
onclick
事件处理程序返回
false
。然后
href
可以指向
#
,或者更好的做法是让它指向一个或多或少与事件处理程序具有相同效果的url,这样当javascript关闭时,它会优雅地降级。

不会回答您的问题,但可能会对其有更多的了解,一些早期版本的浏览器(如netscape)在
href
中使用脚本时出现问题

void
操作符几乎是强制单击不执行任何操作的唯一方法


现在,浏览器正确地实现了“伪URL”,您可以安全地使用
javascript:

您多久会看到一次仅使用http:
的URL?我怀疑这是因为标准规定,当宣布一个协议或href类型时,您需要在其后面添加一些内容!:-)-关于同一主题,可能会有帮助。另请参见:哈希符号旨在用作锚点,而不是用于此目的。当你以这种方式使用它时,你会时不时地得到不希望的效果,比如你的页面到处乱跳。@rubyfantaic-为了学究,散列符号是指向锚的链接,但我接受你的观点。但我不同意;只要启用了JavaScript,您就不会得到不想要的效果,即使这样,跳到当前页面的顶部也很少是一场灾难。此外,散列符号现在已经完全被用于Ajax功能,以至于它实际上被推荐为良好实践,所以这样做很难违背原则。回答你的问题:我不使用span,因为这样它就不能与键盘一起工作,也不会自动在CSS上显示蓝色/下划线/指针。如果span上有一个
tabindex=“0”
,则它会对:焦点事件作出反应。我在IE7、8和其他更新的浏览器中尝试过这个例子:(IE不支持:focus)是的。超链接上的Javascript事件绑定应生成可读性最高的代码,并便于将来维护。如果关闭Javascript,顶部将出现一个大的红色
noscript
警告。另外,我不认为状态栏有一个URL而不是工作javascript更好JavaScript@GeorgeBailey给我留下深刻印象的是,你5个月后回来纠正一个打字错误+1
javascript:
为什么不
javascript:
?我看到HTAs(IE7模式)在一个新窗口中打开
href=“javascript;”“