मुझे शरीर के निचले हिस्से में एक div डालने के लिए, मेरी जावास्क्रिप्ट में दस्तावेज़ तैयार करने की प्रतीक्षा करनी है।
मैं चाहता हूँ:
- मेकअप इस जावास्क्रिप्ट संभव के रूप में छोटे फ़ाइल निर्यात के बिना
- इनलाइन कोड है कि एक बंद में दस्तावेज़ readyness प्रदान करता है ((< 1KB यदि संभव हो तो के लिए यह संकलन नीचे))
मेरी फ़ाइल में पूरे jQuery स्रोत को रेखांकित करना बहुत बड़ा होगा, इसलिए मैं अन्य विधियों की तलाश में हूं। window.onload
काम करेगा, लेकिन मैं विशेष रूप से दस्तावेज़ तैयार करना चाहता हूं, और window.onload
ईवेंट की प्रतीक्षा न करें।
क्या कोई भी जेएस स्निपेट जानता है जो ऐसा कर सकता है? या मुझे बस jQuery के स्रोत का हिस्सा कॉपी करना चाहिए?
संपादित करें:
var ready = (function() {
var ready_event_fired = false;
var ready_event_listener = function (fn) {
// Create an idempotent version of the 'fn' function
var idempotent_fn = function() {
if (ready_event_fired) {
return;
}
ready_event_fired = true;
return fn();
}
// The DOM ready check for Internet Explorer
var do_scroll_check = function() {
if (ready_event_fired) {
return;
}
// If IE is used, use the trick by Diego Perini
// http://javascript.nwbox.com/IEContentLoaded/
try {
document.documentElement.doScroll('left');
} catch(e) {
setTimeout(do_scroll_check, 1);
return;
}
// Execute any waiting functions
return idempotent_fn();
}
// If the browser ready event has already occured
if (document.readyState === "complete") {
return idempotent_fn()
}
// Mozilla, Opera and webkit nightlies currently support this event
if (document.addEventListener) {
// Use the handy event callback
document.addEventListener("DOMContentLoaded", idempotent_fn, false);
// A fallback to window.onload, that will always work
window.addEventListener("load", idempotent_fn, false);
// If IE event model is used
} else if (document.attachEvent) {
// ensure firing before onload; maybe late but safe also for iframes
document.attachEvent("onreadystatechange", idempotent_fn);
// A fallback to window.onload, that will always work
window.attachEvent("onload", idempotent_fn);
// If IE and not a frame: continually check to see if the document is ready
var toplevel = false;
try {
toplevel = window.frameElement == null;
} catch (e) {}
if (document.documentElement.doScroll && toplevel) {
return do_scroll_check();
}
}
};
return ready_event_listener;
})();
// TEST
var ready_1 = function() {
alert("ready 1");
};
var ready_2 = function() {
alert("ready 2");
};
ready(function() {
ready_1();
ready_2();
});
तुम मुझे jQuery स्रोत में मदद करने के लिए इस को खोजने के लिए बहुत-बहुत धन्यवाद:
मैं jQuery स्रोत क्रॉल और निम्नलिखित स्निपेट के साथ एक साथ रखा करने में कामयाब रहे। अब मैं इसे बंद करने में रख सकता हूं और किसी भी कार्य को निर्यात किए बिना और वैश्विक दायरे को प्रदूषित किए बिना अपना काम कर सकता हूं।
आप गूगल के सर्वर से jQuery स्रोत है, जो आपको यह पहले से ही cachedd होने का एक अच्छा बदलाव देना होगा लाने सकता है। – Pointy