以下是构建链接的两种方法,该链接的唯一目的是运行JavaScript代码。在功能、页面加载速度、验证目的等方面,哪个更好。?
函数myJsFunc(){警报(“myJsFunc”);}<a href=“#”onclick=“myJsFunc();”>运行JavaScript代码</a>
or
函数myJsFunc(){警报(“myJsFunc”);}运行javascript代码</a>
以下是构建链接的两种方法,该链接的唯一目的是运行JavaScript代码。在功能、页面加载速度、验证目的等方面,哪个更好。?
函数myJsFunc(){警报(“myJsFunc”);}<a href=“#”onclick=“myJsFunc();”>运行JavaScript代码</a>
or
函数myJsFunc(){警报(“myJsFunc”);}运行javascript代码</a>
当前回答
我认为你提出了一个错误的二分法。这不是唯一的两个选项。
我同意D4V360先生的观点,他建议,即使您使用的是锚标记,但这里并没有真正的锚。您所拥有的只是文档的一个特殊部分,其行为应该略有不同。<span>标记更合适。
其他回答
为了完整起见,这里还有一个选项,即使禁用了JavaScript,也可以阻止链接执行任何操作,而且很短:)
<a href="#void" onclick="myJsFunc()">Run JavaScript function</a>
如果该id不在页面上,则链接将不起作用。
一般来说,我同意Aaron Wagner的回答,JavaScript链接应该与JavaScript代码一起注入到文档中。
也不
如果您可以有一个实际的URL,请将其用作HREF。如果有人中间点击你的链接打开一个新的标签,或者他们禁用了JavaScript,onclick就不会启动。
如果这是不可能的,那么您至少应该使用JavaScript和适当的单击事件处理程序将锚标记注入到文档中。
我意识到这并不总是可能的,但在我看来,在开发任何公共网站时都应该努力做到这一点。
查看Unobrusive JavaScript和Progressive增强(两个维基百科)。
如果您恰好使用AngularJS,可以使用以下选项:
<a href="">Do some fancy JavaScript</a>
这不会有任何作用。
此外
它不会像(#)那样将您带到页面顶部因此,您不需要使用JavaScript显式返回false它简短而简洁
不要忽视这样一个事实,即您的URL可能是必需的——在引用之后会触发onclick,因此有时您需要在导航离开页面之前处理客户端的某些内容。
2019年1月编辑
在HTML5中,使用没有href属性的a元素是有效的。它被认为是“占位符超链接”
如果a元素没有href属性,则该元素表示一个占位符,如果链接是相关的,则该占位符可能是放置链接的位置,仅包含元素的内容。
例子:
<a>previous</a>
如果在此之后,您希望执行其他操作:
1-如果你的链接不到任何地方,不要使用<a>元素。使用<span>或其他合适的工具,并添加CSS:hover以根据您的需要设置其样式。
2-使用javascript:void(0)OR javascript:undefined OR javascript:;如果你想要原始、精确和快速。