Ich habe diesen Link auf meiner HTML-Seite:
<a href = ""
onclick = "setBodyHtml ('new content'); return false; "
> click here </a>
Die Funktion setBodyHtml () ist definiert als:
function setBodyHtml (s)
{ document.body.innerHTML = s;
}
Wenn ich auf den Link klicke, verschwindet der Link und der im Browser angezeigte Text ändert sich in "neuer Inhalt".
Aber wenn ich das "Falsche" aus meinem Link entferne, bewirkt das Klicken auf den Link (scheinbar) nichts. Warum ist das so?
Dies liegt daran, dass das Standardverhalten beim Klicken auf den Link und beim Anzeigen der Zielseite nicht abgebrochen wird, wenn ich nicht false zurückgebe. ABER hier ist der href des Hyperlinks "", sodass er auf die gleiche aktuelle Seite zurückführt. Die Seite wird also effektiv nur aktualisiert und anscheinend passiert nichts.
Im Hintergrund wird die Funktion setBodyHtml () weiterhin ausgeführt. Es weist sein Argument body.innerHTML zu. Da die Seite jedoch sofort aktualisiert / neu geladen wird, bleibt der geänderte Textinhalt möglicherweise nicht länger als ein paar Millisekunden sichtbar, sodass ich ihn nicht sehen werde.
Dieses Beispiel zeigt, warum es manchmal NÜTZLICH ist, "return false" zu verwenden.
Ich möchte dem Link SOME href zuweisen, damit er als Link als unterstrichener Text angezeigt wird. Ich möchte jedoch nicht, dass durch Klicken auf den Link die Seite effektiv neu geladen wird. Ich möchte, dass das Standardverhalten von Navigation = aufgehoben wird und alle Nebenwirkungen, die durch den Aufruf meiner Funktion verursacht werden, wirksam werden. Deshalb muss ich "false zurückgeben".
Das obige Beispiel würden Sie während der Entwicklung schnell ausprobieren. Für die Produktion würden Sie eher einen Click-Handler in JavaScript zuweisen und stattdessen verhindernDefault () aufrufen. Aber für ein schnelles Ausprobieren reicht die obige "return false" aus.