function weiterleitung(wohin) {
setTimeout('location.href=www.google.de’,1000);
}
Und dann
onsubmit=„weiterleitung()“
Das funktioniert.
Nun möchte ich für ein Projekt das Ganze dynamischer gestalten, so dass die location als Variable übergeben wird.
Nur passiert leider nichts.
=>
onsubmit=„weiterleitung(‚index.php‘)“
function weiterleitung(wohin) {
setTimeout(‚location.href=+wohin‘,1000);
alert(wohin);
}
Das alert funktioniert korrekt. Auch ohne + passiert leider nichts.
Any idea? Danke für Mühe un einen Hinweis.
mfG
Oliver
der Code sorgt dafür, dass nach einer Sekunde der folgende Befehl ausgeführt wird:
location.href=+wohin;
wohin ist an dieser Stelle aber nicht definiert, weil die Funktion (da du sie als String angegeben hast) nicht innerhalb deiner Funktion weiterleitung aufgerufen wird und damit keinen Zugriff mehr auf die Argumente hat.
Das ist auch einer der vielen Gründe, warum man setTimeout nicht mit einem String benutzt, sondern mit einer Funktion:
function machWasAberSpäter (nachricht) {
window.setTimeout(
function () {
window.status += nachricht;
},
1000
);
}
Wenn du das auf dein Problem umschreibst, achte bitte auch auf die Reihenfolge des + und = beim Verkettungszuweisungsoperator. Deine Version =+ bedeutet etwas anderes als du vermutlich denkst.
Hallo,
waow, das war schnell.
Da sheißt, ich muß zwei Funktionen aufrufen?
"
von amicanoctis , 29.07.2013 11:08
Hallo,
der Code sorgt dafür, dass nach einer Sekunde der folgende Befehl ausgeführt wird:
mehr solls ja auch nicht tun. Die Variable ist also nicht automatisch bekannt, sobald die an die Funktion übergeben wird?
> Die Variable ist also nicht automatisch bekannt,
> sobald die an die Funktion übergeben wird?
Doch, wenn man Funktionen nimmt, schon. Bei Strings (als Argument an setTimeout) klappt es aber nicht. In meinem Beispiel kann die innere Funktion auf die Variable „nachricht“ aus der äußeren Funktion zugreifen.
Wenn du es genauer wissen willst, kannst du dich über Closures in JavaScript informieren, denn das ist ein Thema, was hier den Rahmen sprengen würde.
Nimm einfach den Beispielcode und passe ihn an dein Problem an.
ich verstehe Dein Problem nicht ganz!
Was willst Du machen?
Wenn Du eine automatische Weiterleitung einrichtest, (sagt schon der Name) wird der User auf eine Seite weitergeleitet. Wie soll das dann dynamisch funktionieren.
Gib mir doch mal ein Beispiel wie Du das einsetzen willst.
PS: Ich benutze eine automatische Weiterleitung nur, mit einer abfrage ob JavaScript aktiv ist.
Nein, du rufst machWasAberSpäter auf und die Engine (der Browser) ruft dann nach 1sec selbst die innere (anonyme) Funktion auf. Die musst du nur definieren.