Javascript - So erkennen Sie, ob das Dokument geladen wurde (IE 7 / Firefox 3)
Ich soll eine Funktion aufgerufen wird, nachdem ein Dokument geladen wird, aber das Dokument kann oder nicht beendet haben, laden noch. Wenn es zu laden, dann kann ich nur die Funktion aufrufen. Wenn es NICHT geladen, dann kann ich fügen Sie einen Ereignis-listener. Ich kann nicht fügen Sie ein eventlistener nach onload bereits ausgelöst, da Sie nicht aufgerufen. Also, wie kann ich überprüfen, ob das Dokument geladen hat? Ich habe versucht den code unter, aber es nicht ganz funktioniert. Irgendwelche Ideen?
var body = document.getElementsByTagName('BODY')[0];
//CONDITION DOES NOT WORK
if (body && body.readyState == 'loaded') {
DoStuffFunction();
} else {
//CODE BELOW WORKS
if (window.addEventListener) {
window.addEventListener('load', DoStuffFunction, false);
} else {
window.attachEvent('onload', DoStuffFunction);
}
}
InformationsquelleAutor der Frage Marcos | 2009-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Notwendigkeit für den code erwähnt galambalazs. Die cross-browser Weg, es zu tun in reinem JavaScript ist einfach zu testen
document.readyState
:Dies ist auch, wie jQuery das macht.
Je nachdem, wo das JavaScript geladen wird, kann dies innerhalb eines Intervalls:
In der Tat
document.readyState
können drei Zustände:Also, wenn Sie brauchen nur den DOM fertig zu sein, überprüfen Sie für
document.readyState === "interactive"
. Wenn Sie die ganze Seite, bereit zu sein, einschließlich Bilder, überprüfen Siedocument.readyState === "complete"
.InformationsquelleAutor der Antwort this.lau_
Keine Notwendigkeit für eine Bibliothek. jQuery verwendet, dieses Skript für eine Weile, btw.
http://dean.edwards.name/weblog/2006/06/again/
InformationsquelleAutor der Antwort galambalazs
Du willst wohl so etwas wie jQuery, das macht JS-Programmierung einfacher.
Etwas wie:
Scheint zu tun, was Sie sind nach.
InformationsquelleAutor der Antwort dan
Wenn Sie wirklich wollen, diesen code zu laufen ladennicht bei domready (dh Sie müssen die Bilder geladen werden), dann leider die ready-Funktion nicht, es für Sie tun. Ich in der Regel nur etwas wie das hier tun:
Enthalten im Dokument-javascript (ie immer aufgerufen, bevor onload gefeuert):
Dann code:
(Oder den Gegenwert in Ihrem Rahmen den Vorzug.) Ich benutze diesen code zu tun Zwischenspeicherung von javascript und Bildern für zukünftige Seiten. Da die Sachen, die ich bekommen hab ist nicht für diese Seite an alle, ich will nicht, dass es Vorrang vor dem schnellen download der Bilder.
Kann es einen besseren Weg, aber ich habe noch, es zu finden.
InformationsquelleAutor der Antwort Nathan Stretch
InformationsquelleAutor der Antwort Jman
Mozila Firefox sagt, dass
onreadystatechange
ist eine alternative zuDOMContentLoaded
.In
DOMContentLoaded
den Mozila doc sagt:Ich denke
load
Ereignis sollte genutzt werden für eine vollständige Dokumentation+Ressourcen laden.InformationsquelleAutor der Antwort Mostafa Talebi
Oben mit JQuery ist das einfachste und meist genutzte Weg. Allerdings können Sie verwenden reines javascript, aber versuchen zu definieren, dieses Skript in den Kopf, so dass es zu Lesen am Anfang. Was du suchst ist
window.onload
Veranstaltung.Unten ist ein einfaches Skript, das ich erstellt und führt einen Zähler. Der Zähler Stoppt dann nach 10 Iterationen
InformationsquelleAutor der Antwort Talha
Versuchen Sie dies:
InformationsquelleAutor der Antwort smit
Habe ich eine andere Lösung, meine Anwendung muss gestartet werden, wenn neue Objekt MyApp erstellt, so wie es aussieht:
es funktioniert auf allen Browsern, die ich kenne.
InformationsquelleAutor der Antwort vitus