我问这个是因为我有一些链接就像按钮一样通过ajax提取内容,所以我不需要任何href。
(我从SEO的角度问这个问题)
答案 0 :(得分:25)
我假设“链接”只是指a
元素。如果那是真的那么:
没有。至少,不在HTML5 draft specification:
如果a元素没有href属性,则该元素表示a 占位符,否则链接可能放在哪里 已经相关了。
作者也可以创建一个不指定锚点的A元素,即 没有指定href,name或id。这些属性的值 可以稍后通过脚本设置。
答案 1 :(得分:7)
链接是否需要href?
是。没有href属性的锚点不是链接。
我问这个是因为我有一些链接就像按钮一样通过ajax拉出内容
如果你这样做,那就做对了。使用Unobtrusive JavaScript和pushState。
"连结"只有当你使用指点设备并且启用了JS时才能正常工作。
我从SEO的角度提出这个问题
搜索引擎不会执行你的JavaScript,所以伪链接(依赖于JS)只是他们所关心的虚无黑洞。
答案 2 :(得分:4)
如果您的链接类似按钮,则应该使用<button>
元素。
答案 3 :(得分:2)
答案 4 :(得分:2)
我不确定,但前段时间我遇到了“a”没有href的问题...点击无效。但也许它只是一个旧的浏览器。
答案 5 :(得分:2)
根据它的规格,你也会发现当你省略href时,浏览器会实现不同的默认样式(例如,不将光标更改为指针)。添加虚拟href的最常用方法是
href="#" // But the event handler function must return false in order to avoid the default behaviour of jumping to the top of the page
href="javascript:void()" // has the advantage of having no annoying default behaviour
答案 6 :(得分:1)
它们并非绝对必需,但是您应该将href="#/"
作为href来使其在语义上正确。如果没有href=""
属性,锚点很可能会被解析为页面中的书签,尤其是在指定了name=""
属性的情况下。
答案 7 :(得分:0)
虽然不是必需的,但是你应该将href添加到锚标签中,因为没有href它们就不是真正的锚标签。
您可以在链接中添加“#”并添加onClick ='return false;'防止点击事件。如果您使用的是JQuery,则可以将event.preventDefault()
添加到链接的点击处理程序中。
从SEO的角度来看,我会使用标题作为锚标记(避免使用-ve text-indent属性。)