Ich benutze einfach:
setTimeout(function(){
//reference/manipulate DOM here
});
Und im Gegensatz zu document.addEventListener("DOMContentLoaded" //etc
wie in der allerersten Antwort, funktioniert es bis zurück zu IE9 -- http://caniuse.com/#search=DOMContentLoaded wird erst seit IE11 angezeigt.
Interessanterweise bin ich über Folgendes gestolpert setTimeout
Lösung im Jahr 2009: Ist es übertrieben, die Bereitschaft des DOMs zu prüfen? was wahrscheinlich etwas besser hätte formuliert werden können, da ich meinte: "Ist es ein Overkill, die komplizierteren Ansätze verschiedener Frameworks zu verwenden, um die Bereitschaft des DOM zu prüfen?
Meine beste Erklärung dafür, warum diese Technik funktioniert, ist, dass, wenn das Skript mit einem solchen setTimeout erreicht wurde, das DOM gerade geparst wird, so dass die Ausführung des Codes innerhalb des setTimeout verschoben wird, bis dieser Vorgang abgeschlossen ist.
302 Stimmen
...und auch definitiv nicht die gleiche Funktionalität.
46 Stimmen
Als diese Antwort Staaten, wenn alles, was Sie von jQuery wollen, ist
$(document).ready
können Sie dieses Problem leicht lösen, indem Sie Ihren Code ganz unten auf der Seite ausführen, anstatt oben. HTML5Boilerplate verwendet genau diesen Ansatz.5 Stimmen
Warum nicht einfach den DOMContentLoaded verwenden? Es ist IE9+ caniuse.com/domcontentloaded developer.mozilla.org/de-US/docs/Web/Events/DOMContentLoaded
0 Stimmen
Ein Blick lohnt sich: developer.mozilla.org/de-US/docs/Web/API/Document/readyState
0 Stimmen
developer.mozilla.org/de-US/docs/Web/API/Document/