Que signifie "javascript:void(0)" ?

<a href="javascript:void(0)" id="loginlink">login</a>

J'ai vu de telles href à plusieurs reprises, mais je ne sais pas ce que cela signifie exactement.

Solution

L'opérateur void évalue l'expression donnée et retourne une l'expression donnée, puis renvoie undefined.

L'opérateur void est souvent utilisé simplement pour obtenir la valeur primitive undefined. valeur primitive indéfinie, en utilisant généralement "void(0)" (qui est équivalent à "void 0"). Dans ces cas cas, la variable globale [undefined][1] peut être utilisée peut être utilisée à la place (en supposant qu'elle n'a n'a pas été affectée à une valeur autre que valeur par défaut).

Une explication est fournie ici : [void operator][2].

La raison pour laquelle vous voulez faire cela avec le href d'un lien est que normalement, une URL javascript: redirigera le navigateur vers une version en texte clair du résultat de l'évaluation de ce JavaScript. Mais si le résultat est undefined, alors le navigateur reste sur la même page. void(0) est juste un script court et simple qui évalue à undefined.

[1] : https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/undefined [2] : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void

Commentaires (26)

Cela signifie qu'il ne fera rien. C'est une tentative pour que le lien ne "navigue" nulle part. Mais ce n'est pas la bonne méthode.

En fait, vous devriez simplement "retourner false" dans l'événement "onlick", comme ceci :

<a href="#" onclick="return false;">hello</a>

Typiquement, c'est utilisé si le lien fait quelque chose de "JavaScript". Comme l'affichage d'un formulaire AJAX, ou l'échange d'une image, ou autre. Dans ce cas, il suffit de faire en sorte que la fonction appelée renvoie false.

Cependant, pour rendre votre site Web complètement génial, vous incluez généralement un lien qui effectue la même action, si la personne qui le consulte choisit de ne pas exécuter JavaScript.

<a href="backup_page_displaying_image.aspx"
   onclick="return coolImageDisplayFunction();">hello</a>
Commentaires (17)

Vous devez toujours avoir un href sur vos balises a. L'appel d'une fonction JavaScript qui renvoie "undefined" (non défini) fera l'affaire. Il en va de même pour les liens vers '#'.

Dans Internet Explorer 6, les balises d'ancrage sans href n'ont pas le style a:hover appliqué.

Oui, c'est terrible et c'est un petit crime contre l'humanité, mais il en va de même pour Internet Explorer 6 en général.

J'espère que cela vous aidera.

Internet Explorer 6 est en fait un crime majeur contre l'humanité.

Commentaires (0)