避免使用"javascript:void(0)"作为空链接
有多种方法可以创建空链接,但其中一些选项比其他选项更合适。关于这个问题最常见的争论之一是是否应该使用href=""
、href="#"
或href="javascript:void(0)"
。
通常情况下,应避免使用href="javascript:void(0)"
,因为它会导致浏览器解析链接URL的值,这既耗时又不必要。它还会引入潜在的XSS安全漏洞,因为javascript:
URL违反了内容安全策略(CSP)。
除此之外,很明显href=""
或href="#"
在大多数情况下应该是首选。两者之间的一个关键区别是,href="#"
指向页面顶部,而href=""
指向当前页面。这可能会产生不希望的副作用,比如滚动到页面顶部或链接样式的问题。为了防止它们作为链接起作用,可以使用Event.preventDefault()
并使用JavaScript适当地处理它们。
最后,当创建空链接时,应始终考虑更语义化的替代方案,例如<button>
、<div>
或<span>
标签。毕竟,链接应始终像链接一样运作,用JavaScript或其他任何方式劫持它必定会在不久的将来遇到一些可访问性问题。