javascript - questions - पेज पूरी तरह से लोड होने पर फ़ंक्शन निष्पादित कैसे करें?




javascript programs (8)

पृष्ठ को पूरी तरह से लोड होने पर मुझे कुछ जावास्क्रिप्ट कोड निष्पादित करने की आवश्यकता है। इसमें छवियों जैसी चीजें शामिल हैं।

मुझे पता है कि आप जांच सकते हैं कि डोम तैयार है या नहीं, लेकिन मुझे नहीं पता कि यह वही है जब पृष्ठ पूरी तरह से लोड हो जाता है।


GlobalEventHandlers Mixin की ऑनलोड प्रॉपर्टी एक विंडो, XMLHttpRequest, तत्व इत्यादि की लोड इवेंट के लिए इवेंट हैंडलर है , जो संसाधन लोड होने पर आग लगती है।

इसलिए मूल रूप से जावास्क्रिप्ट में पहले से ही विंडो पर अधिभार विधि है जो निष्पादित हो जाता है कि कौन सा पृष्ठ छवियों सहित पूरी तरह से लोड किया गया है ...

आप कुछ कर सकते हैं:

var spinner = true;

window.onload = function() {
  //whatever you like to do now, for example hide the spinner in this case
  spinner = false;
};

यदि आपको कई onload उपयोग $(window).load का उपयोग करने की आवश्यकता है। इसके बजाय $(window).load (jQuery):

$(window).load(function() {
    //code
});

आम तौर पर आप window.onload उपयोग कर सकते हैं, लेकिन आप देख सकते हैं कि हाल के ब्राउज़र window.onload फायर नहीं करते हैं। जब आप बैक / फॉरवर्ड हिस्ट्री बटन का उपयोग करते हैं तो डाउनलोड करें।

कुछ लोग इस समस्या के आसपास काम करने के लिए अजीब contortions का suggest , लेकिन वास्तव में अगर आप सिर्फ एक window.onunload बनाते हैं। हैंडलर हैंडलर (यहां तक ​​कि कोई भी जो कुछ भी नहीं करता), यह कैशिंग व्यवहार सभी ब्राउज़रों में अक्षम हो जाएगा। MDC इस "फीचर" को बहुत अच्छी तरह से दस्तावेज करता है, लेकिन किसी कारण से अभी भी लोग setInterval और अन्य अजीब हैक्स का उपयोग कर रहे हैं।

ओपेरा के कुछ संस्करणों में एक बग है जिसे आपके पृष्ठ में कहीं भी जोड़कर चारों ओर काम किया जा सकता है:

<script>history.navigationMode = 'compatible';</script>

यदि आप केवल प्रति-दृश्य नामक जावास्क्रिप्ट फ़ंक्शन प्राप्त करने का प्रयास कर रहे हैं (और DOM लोड होने के बाद जरूरी नहीं है), तो आप ऐसा कुछ कर सकते हैं:

<img src="javascript:location.href='javascript:yourFunction();';">

उदाहरण के लिए, मैं लोडिंग स्क्रीन पर कैश में एक बहुत बड़ी फ़ाइल को प्रीलोड करने के लिए इस चाल का उपयोग करता हूं:

<img src="bigfile"
onload="this.location.href='javascript:location.href=\'javascript:doredir();\';';doredir();">


और PrototypeJS साथ ऐसा करने का एक तरीका यहां है:

Event.observe(window, 'load', function(event) {
    // Do stuff
});

खिड़की.ऑनलोड इवेंट आग लग जाएगा जब सब कुछ लोड हो जाएगा, इमेज इत्यादि सहित।

यदि आप अपने जेएस कोड को जितनी जल्दी हो सके निष्पादित करना चाहते हैं, तो आप डीओएम तैयार स्थिति की जांच करना चाहेंगे, लेकिन आपको अभी भी डीओएम तत्वों तक पहुंचने की आवश्यकता है।


onLoad() ईवेंट का उपयोग कर जावास्क्रिप्ट, निष्पादन से पहले पृष्ठ को लोड करने की प्रतीक्षा करेगा।

<body onload="somecode();" >

यदि आप jQuery फ्रेमवर्क के दस्तावेज़ तैयार फ़ंक्शन का उपयोग कर रहे हैं तो जैसे ही DOM लोड हो जाता है और पृष्ठ सामग्री लोड होने से पहले कोड लोड हो जाएगा:

$(document).ready(function() {
    // jQuery code goes here
});

इसे पूरा करें इसे पूरा पृष्ठ लोड होने के बाद ही चलाएं

जावास्क्रिप्ट द्वारा

window.onload = function(){
    // code goes here
};

Jquery द्वारा

$(window).bind("load", function() {
    // code goes here
});






javascript