Ho questo link sulla mia pagina HTML:
<a href = ""
onclick = "setBodyHtml ('new content'); return false; "
> click here </a>
La funzione setBodyHtml () è definita come:
function setBodyHtml (s)
{ document.body.innerHTML = s;
}
Quando faccio clic sul collegamento, il collegamento scompare e il testo visualizzato nel browser diventa "nuovo contenuto".
Ma se rimuovo il "falso" dal mio link, fare clic sul link (apparentemente) non fa nulla. Perché?
È perché se non restituisco falso il comportamento predefinito di fare clic sul collegamento e visualizzare la sua pagina di destinazione si verifica, non viene annullato. MA, qui l'href del collegamento ipertestuale è "", quindi si collega alla stessa pagina corrente. Quindi la pagina viene effettivamente aggiornata e apparentemente non succede nulla.
Sullo sfondo la funzione setBodyHtml () viene ancora eseguita. Assegna il suo argomento a body.innerHTML. Ma poiché la pagina viene immediatamente aggiornata / ricaricata, il contenuto del corpo modificato non rimane visibile per più di qualche millisecondo, quindi non lo vedrò.
Questo esempio mostra perché a volte è UTILE utilizzare "return false".
Voglio assegnare ALCUNI href al link, in modo che sia mostrato come link, come testo sottolineato. Ma non voglio che il clic sul link per ricaricare efficacemente la pagina. Voglio che il navigatore predefinito = il comportamento venga annullato e qualunque effetto collaterale sia causato chiamando la mia funzione affinché diventi attiva. Pertanto devo "restituire false".
L'esempio sopra è qualcosa che potresti provare rapidamente durante lo sviluppo. Per la produzione, è più probabile che tu assegni un gestore di clic in JavaScript e chiami invece preventDefault (). Ma per una rapida prova il "return false" sopra fa il trucco.