onload Funktion nur einmal


rernanded

Erfahrenes Mitglied
Wie krieg ich es hin eine onload Funktion im body zu stoppen oder nur einmal ausführen zu lassen?

HTML:
<html>
<head>

</head>
<body onload="postFunction(); stopthepostFunction()">

<script>
function postFunction() {
document.getElementById("url_form").submit();
}
</script>

<script>
function stopthepostFunction() {

}
</script>


MONI
 

Sempervivum

Erfahrenes Mitglied
Ich vermute, das Problem ist, dass Du hier in eine Endlosschleife hinein kommst, weil bei jedem Submit wieder die selbe Seite geladen wird und der Submit erneut ausgeführt wird.

Lösung 1: An die URL einen Parameter anhängen und mit Javascript abfragen:

Lösung 2: Wahrscheinlich wird mit dem Submit ja ein PHP-Skript aufgerufen. Dieses kann prüfen, ob ein Submit vorliegt und davon abhängig das Submit der neuen Seite unterdrücken, etwa so:
Code:
<body <?php if(!isset($_POST['submit']) echo ' onload="postFunction();"' ?>>
Lösung 3: Im Localstorage merken, ob die Seite zum ersten Mal oder durch Submit aufgerufen wurde.

Ich würde wohl Lösung 2 bevorzugen.

Aber ich frage mich nach dem Sinn der Sache: Wo es ein Submit gibt, muss es ja auch ein Formular geben und wenn dieses, gleich wenn die Seite geladen wird, abgeschickt wird, kann der Benutzer es ja nicht ausfüllen und nicht einmal die Seite in Ruhe ansehen. ?
 

Neue Beiträge