अन्य उत्तर सभी पुराने हो चुके लगते
सबसे पहले, शीर्ष पर स्क्रिप्ट डाल और window.onload
का उपयोग कर एक विरोधी पैटर्न है। यह आईई दिनों से जावास्क्रिप्ट की सबसे अच्छी या गलत समझ में और ब्राउज़र को सबसे खराब पर छोड़ दिया गया है।
तुम सिर्फ अपनी स्क्रिप्ट अपने html
<html>
<head>
<title>My Page</title>
</head>
<body>
content
</body>
<script src="some-external.js"></script>
<script>
some in page code
</script>
</html>
के नीचे ले जा सकते हैं एकमात्र कारण लोगों window.onload
प्रयोग किया जाता है, क्योंकि वे गलती से head
खंड में जाने के लिए की जरूरत स्क्रिप्ट पर विश्वास किया। चूंकि आपकी स्क्रिप्ट मुख्य खंड में थी, तो चीजें निष्पादित की जाती हैं, इसलिए क्रम में निष्पादित करके शरीर और आपकी सामग्री अभी तक मौजूद नहीं है।
हैकी वर्कअराउंड window.onload
का उपयोग पृष्ठ के बाकी हिस्सों को लोड करने के लिए करना था। अपनी स्क्रिप्ट को नीचे तक ले जाने से भी उस समस्या को हल किया गया है और अब window.onload
का उपयोग करने की आवश्यकता नहीं है क्योंकि आपका शरीर और सामग्री पहले ही लोड हो चुकी है।
अधिक आधुनिक समाधान आपकी स्क्रिप्ट पर defer
टैग का उपयोग करना है, लेकिन यह उपयोग करने के लिए कि आपकी स्क्रिप्ट को सभी बाहरी होने की आवश्यकता है।
<head>
<script src="some-external.js" defer></script>
<script src="some-other-external.js" defer></script>
</head>
यह लाभ यह है कि ब्राउज़र तत्काल स्क्रिप्ट डाउनलोड होना शुरू हो जाएगा और यह उन्हें निर्दिष्ट क्रम में निष्पादित करेगा, लेकिन यह जब तक के बाद पृष्ठ के लोड होते उन्हें निष्पादित करने के लिए इंतजार करेंगे, window.onload
या बेहतर की कोई आवश्यकता नहीं लेकिन अभी भी अनइडेड window.addEventListener('load', ...
@xgqfrms [jQuery हमेशा जवाब नहीं है] (http://meta.stackoverflow.com/questions/335328/when-is-use-jquery-not-a-valid-answer-to- एक जावास्क्रिप्ट-प्रश्न) ... –