J'ai ce lien sur ma page HTML:
<a href = ""
onclick = "setBodyHtml ('new content'); return false; "
> click here </a>
La fonction setBodyHtml () est définie comme:
function setBodyHtml (s)
{ document.body.innerHTML = s;
}
Lorsque je clique sur le lien, le lien disparaît et le texte affiché dans le navigateur devient "nouveau contenu".
Mais si je supprime le "faux" de mon lien, cliquer sur le lien ne fait (apparemment) rien. Pourquoi donc?
C'est parce que si je ne retourne pas false, le comportement par défaut de cliquer sur le lien et d'afficher sa page cible se produit, n'est pas annulé. MAIS, ici le href de l'hyperlien est "" donc il renvoie à la même page courante. Ainsi, la page est effectivement juste actualisée et apparemment rien ne se passe.
En arrière-plan, la fonction setBodyHtml () est toujours exécutée. Il affecte son argument à body.innerHTML. Mais parce que la page est immédiatement actualisée / rechargée, le contenu du corps modifié ne reste peut-être pas visible plus de quelques millisecondes, donc je ne le verrai pas.
Cet exemple montre pourquoi il est parfois UTILE d'utiliser "return false".
Je veux assigner QUELQUES href au lien, pour qu'il apparaisse comme un lien, comme du texte souligné. Mais je ne veux pas que le clic sur le lien recharge efficacement la page. Je veux que ce comportement de navigation = par défaut soit annulé et quels que soient les effets secondaires provoqués par l'appel de ma fonction pour qu'elle prenne et reste en vigueur. Je dois donc "retourner faux".
L'exemple ci-dessus est quelque chose que vous essayeriez rapidement pendant le développement. Pour la production, vous affecteriez plus probablement un gestionnaire de clics en JavaScript et appeleriez preventDefault () à la place. Mais pour un essai rapide, le "retour faux" ci-dessus fait l'affaire.