2017-03-02 3 views
0
  • Verzeihen Sie mir Ich bin neu in Javascript.

Ich versuche herauszufinden, die beste Methode zu warten, bis ein Dokument geladen wird.Wie kann ich auf das Laden des Dokuments warten?

Was ich bin versucht:

  1. benutzen Sie eine URL
  2. warten, bis die Seite vollständig geladen (Skripte, Bilder, usw.)
  3. überprüfen, ob Seite geladen ist wahr.

Von meinem Verständnis würde ich so etwas tun:

window.location = "https://somewebsite.com" 

function isLoaded() { 
    while (document.readyState != "complete") { 
    } 
    return true; 
} 

isLoaded() 

Das Problem:

  • Wenn ich das in Firefox Konsole. Ich glaube, bevor das Dokument versucht hat, die Seite zu öffnen, oder ich bekomme eine Warnung "beschäftigt Skript", wenn ich versuche, es von der Konsole aus zu starten, nachdem die aktuelle Seite nicht mehr auf dem Bildschirm angezeigt wird.
  • Vielleicht mache ich es falsch, vielleicht gibt es einen besseren Weg zu testen, ich bin mir nicht sicher.
  • Wenig Hintergrund. Ich versuche ein Add On für Firefox zu schreiben, also wird mein Skript auf der Seite und nicht auf der Seite ausgeführt. Wenn das hilft.

Antwort

0

drei Optionen:

  1. Wenn Skript der letzte Tag des Körpers ist, würde das DOM bereit sein, bevor Script-Tag
  2. ausführt, wenn das DOM bereit ist, "Readystate" ändern " complete "
  3. Setzen Sie alles unter den 'DOMContentLoaded' Ereignis-Listener.

onreadystatechange

document.onreadystatechange = function() { 
    if (document.readyState == "complete") { 
    // document is ready. Do your stuff here 
    } 
} 

DOMContentLoaded

document.addEventListener('DOMContentLoaded', function() { 
    console.log('document is ready. I can sleep now'); 
}); 
+0

Es scheint in meinem Kopf eine Art trennen zu sein. Von der Konsole, wenn ich eine Seite mit window.location laden und dann document.addEventListener ausführen ('DOMContentLoaded', function() { console.log ('Dokument ist bereit. Ich kann jetzt schlafen'); }); Ich werde undefiniert. Muss ich dem Browser eine Verzögerung mitteilen oder warten, oder gibt es eine bessere Möglichkeit, diesen Code zu testen? – TYPKRFT

Verwandte Themen