A seguir, são apresentados dois métodos para criar um link com o único objetivo de executar o código JavaScript. Qual é melhor, em termos de funcionalidade, velocidade de carregamento da página, finalidades de validação etc.?
function myJsFunc() {
alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>
ou
function myJsFunc() {
alert("myJsFunc");
}
<a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>
myJsFunc()
tiver um valor de retorno, sua página será interrompida. jsfiddle.net/jAd9G você teria ainda tem que usar void
assim: <a href="javascript:void myJsFunc();">
. Mas então, o comportamento ainda seria diferente. A chamada do link pelo menu de contexto não aciona o click
evento.
<a href="javascript:;" onclick="myEvent()"
?
javascript:;
é muito mais rápido de digitar do que #javascript:void(0)
<a>
tag se o que você deseja fazer é NÃO abrir outra página via recurso nativo do navegador, mas sim ter alguma ação javascript a ser acionada? Simplesmente usando uma span
tag com uma classe de js-trigger
provavelmente muito melhor ". Ou eu estou esquecendo de alguma coisa?
<a href="javascript:void(0)" onclick="myJsFunc();">
faz absolutamente nenhum sentido. Se você deve usar ojavascript:
protocolo psuedo, também não precisa doonclick
atributo.<a href="javascript:myJsFunc();">
vai fazer muito bem.