在通过JavaScript连接的链接上省略HREF是否是一种好做法(或好主意)?

在通过JavaScript连接的链接上省略HREF是否是一种好做法(或好主意)?,javascript,html,Javascript,Html,继续扩大, 对于触发对话框和菜单(即非导航)的项目,在具有通过JavaScript连接的事件的链接中省略HREF属性是否是一种良好的做法?在这些情况下,有HREF有意义吗 由此: 甚至更糟糕的是,这是:(这迫使您使用事件.preventDefault()) 对此:一些文本==再编辑一点== 坏主意,坏主意。一方面,它不会显示为链接。如果您需要一个按钮,但需要使用作为一个按钮,只需使用或。正如你所说,“非航行”。的整个点是导航的 在这两种方法中,使用href=“#”将javascript://放入

继续扩大,

对于触发对话框和菜单(即非导航)的项目,在具有通过JavaScript连接的事件的链接中省略HREF属性是否是一种良好的做法?在这些情况下,有HREF有意义吗

由此:

甚至更糟糕的是,这是:
(这迫使您使用
事件.preventDefault()

对此:
一些文本

==再编辑一点==

坏主意,坏主意。一方面,它不会显示为链接。如果您需要一个按钮,但需要使用
作为一个按钮,只需使用
。正如你所说,“非航行”。
的整个点是导航的


在这两种方法中,使用
href=“#”
javascript://
放入链接比添加内联样式更糟糕。

您应该改用
命令
元素

command元素表示用户可以调用的命令


这样做的好处是语义正确。至少有HTML5支持旧浏览器中的元素。

务实地说,这是我在16年的JS实践中学到的

  • 拥有href,如果没有,则需要将光标设置为手或指针
  • 如果您不想使用,请将href转到“抱歉,您需要javascript”页面,或者正如我最近了解到的,某些东西不存在
  • 从来没有href=“javascript:anything()”
  • 在onclick中返回false或preventDefault,最好在onload处理程序中设置

  • 更新:对于菜单等,约定的标记是带有css的列表,如果链接实际加载内容,并在脚本关闭时优雅地降级为纯html导航,则建议在此类菜单中使用链接support@Korvin,我认为使用
    命令
    比强制
    a
    去做它不适合做的事情要好。您可以始终使用垫片来支持较旧的浏览器。垫片比使用
    更有效?那么为什么我们需要
    a
    ?我们可以将div与
    cursor:pointer
    语义一起使用。链接仍然是链接。javascript://不是链接,它是脚本/动作,所以它在allA中的非语义比DIV更有意义。我不同意。我建议的不是
    DIV
    ,而是一个按钮。实际上,
    w3c验证程序似乎对文本没有问题。有效,但不是语义,我的错。在@davin纠正我之后,我更新了我的答案。#1通过设置HTML属性来设置样式是一种糟糕的做法吗?这就像建议用
    将文本包装成蓝色。请阅读我文章的第一个单词。是的,我使用href让所有浏览器显示一个可点击的项目,光标设置为浏览器默认使用的指针。我看不出除了清教徒主义之外,还有什么理由坚持使用各种依赖浏览器的解决方法来设计可点击项目的样式。这个问题与连接到javascript的链接有关。它看起来像一个链接,它的行为像一个链接,那么为什么不使用链接呢?你用以获取蓝色文本的例子很愚蠢,是吗?各种各样的浏览器解决方案?甚至IE6也支持
    游标
    属性。你想得到什么支持?IE4?清教徒呢?我只是说使用HTML设计元素的样式是个坏主意。就像我们不应该再使用
    一样。为什么只使用CSS来设计样式是件坏事呢?所以你会发现游标:指针;光标:手漂亮又简单?我不把它叫做造型。这是我为数不多的捷径之一。