Je veux exécuter une fonction JavaScript simple sur un clic sans aucune redirection.
Y a-t-il une différence ou un avantage à mettre l'appel JavaScript dans l'attribut href
(comme ceci :
<a href="javascript:my_function();window.print();">....</a>
) ou dans l'attribut onclick
(en le liant à l'événement onclick
) ?
Placer le onclick dans le href offenserait ceux qui croient fermement à la séparation du contenu et du comportement/de l'action. L'argument est que votre contenu html doit rester centré uniquement sur le contenu, et non sur la présentation ou le comportement.
De nos jours, la méthode classique consiste à utiliser une bibliothèque javascript (par exemple, jquery) et à créer un gestionnaire d'événements à l'aide de cette bibliothèque. Cela ressemblerait à quelque chose comme :
$('a').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );
Personnellement, je trouve que mettre des appels javascript dans la balise HREF est ennuyeux. En général, je ne fais pas vraiment attention au fait que quelque chose soit un lien javascript ou non, et je veux souvent ouvrir les choses dans une nouvelle fenêtre. Lorsque j'essaie de faire cela avec l'un de ces types de liens, j'obtiens une page blanche sans rien dessus et du javascript dans ma barre d'adresse. Cependant, l'utilisation d'un on-clic permet de contourner un peu ce problème.