Wirklich, wenn Sie sich für Internet Explorer 9+ Nur dieser Code würde ausreichen, um die jQuery.ready
:
document.addEventListener("DOMContentLoaded", callback);
Wenn Sie sich Sorgen machen über Internet Explorer 6 und einigen wirklich seltsamen und seltenen Browsern wird dies funktionieren:
domReady: function (callback) {
// Mozilla, Opera and WebKit
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", callback, false);
// If Internet Explorer, the event model is used
} else if (document.attachEvent) {
document.attachEvent("onreadystatechange", function() {
if (document.readyState === "complete" ) {
callback();
}
});
// A fallback to window.onload, that will always work
} else {
var oldOnload = window.onload;
window.onload = function () {
oldOnload && oldOnload();
callback();
}
}
},
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/