2011-08-11 6 views
6

मुझे jQuery का उपयोग किए बिना jQuery के ready ईवेंट के समतुल्य बनाने की आवश्यकता है। इसे जितना संभव हो उतने ब्राउज़रों पर काम करने की ज़रूरत है और body.onload हैंडलर को गड़बड़ नहीं कर सकता (यानी यदि पहले से ही हैंडलर सेट है, तो फ़ंक्शन इसे ओवरराइट नहीं करना चाहिए)। मैंने jQuery के कोड की जांच की लेकिन यह समझ में नहीं आता कि यह कैसे काम करता है क्योंकि यह कई jQuery के कार्यों का उपयोग करता है।jQuery का उपयोग किये बिना एक अच्छा क्रॉस-ब्राउज़र "तैयार" ईवेंट?

ऐसा करने के बारे में कोई सुझाव क्या है?

संपादित करें: मेरा कोई नियंत्रण नहीं है कि मेरा कोड कहां डाला जा रहा है, इसीलिए इसे मौजूदा निकाय के साथ जितना संभव हो उतना अच्छी तरह से खेलना होगा। हैंडलर लोड करें। इसका मतलब यह भी है कि मैं सुनिश्चित नहीं कर सकता कि कोड पृष्ठ के निचले हिस्से में डाला जाएगा (संभवतः यह नहीं होगा)।

+0

मैं समझता हूँ कि कैसे jQuerys काम करता है प्रयास करने की अनुशंसा, या इस तरह के mootools के रूप में एक और चौखटे कार्यान्वयन बाहर की जाँच। – Loktar

+1

[जावास्क्रिप्ट: $ (दस्तावेज़) लिखने के लिए संभावित डुप्लिकेट। Jquery के बिना ईवेंट की तरह पहले से ही) (http://stackoverflow.com/questions/3989095/javascripthow-to-write-document-ready-like-event-without- jquery) – Piskvor

उत्तर

0

बस नीचे अपने <script> टैग को शामिल करें। इस तरह, यह केवल बाकी सामग्री के लोड होने के बाद ही लोड हो जाएगा।

+0

क्या डोम वास्तव में लोड होने के बाद तैयार है? –

+0

मुझे विश्वास है कि यह है। क्या jQuery आमतौर पर छवियों के लिए प्रतीक्षा करता है और इस तरह पूरी तरह से लोड करना समाप्त करता है? –

+0

@ डॉटवेब: यह * शायद * - लेकिन मैं इस पर भरोसा नहीं करता, खासकर अगर 'iframe' शामिल हैं। – Piskvor

3

Smallest cross browser DOMReady code, ever.

<html> 
    <head> 
    <script> 
     var ready = function (f) { 
     (/in/.test(document.readyState)) ? 
      setTimeout('r(' + f + ')', 9) : 
      f(); 
     }; 
    </script> 
    </head> 
    <body> 
    <script> 
     ready(function() { 
     alert('DOM Ready!'); 
     }); 
    </script> 
    </body> 
</html> 
+0

अपडेट किया गया: वह कैसा है? – shawndumas

संबंधित मुद्दे