2012-11-12 11 views
5

ब्राउज़रों कि घटना DOMContentLoaded और संपत्ति document.readyState समर्थन में:document.ready DOMContentLoaded पर सेट करें?

DOMContentLoaded आग, मैं यह मान सकते हैं जब कि document.readyState का मूल्य हमेशा या तो "complete" या "interactive"/"loaded" हो जाएगा?

(या यह हो सकता है document.readyState कभी कभी अभी भी मूल्य "loading" है?)

अपने जवाब में एक आधिकारिक स्रोत के लिए एक संदर्भ प्रदान करें।

आप सोच सकते हैं: क्यों न केवल readystatechange सुनें? ऐसा इसलिए है क्योंकि एंड्रॉइड 2.3.5 मानक ब्राउज़र एक लक्षित प्लेटफ़ॉर्म है, और यह readystatechange ईवेंट को लागू नहीं करता है।

+1

क्यों न केवल 'DOMContentLoaded' को सुनें? ;-) –

+0

मुझे यकीन है कि एंड्रॉइड 2.3 तैयारस्टेट एक्सचेंज इवेंट का समर्थन करता है, लेकिन इंटरैक्टिव/पूर्ण के बजाय लोड किया जाता है। मैं जांच करूँगा और वापस आऊंगा। – dotnetCarpenter

+0

अपडेट - वास्तव में आप सही हैं। मैंने यहां एक छोटा परीक्षण किया है: http://test.it-kollektivet.dk/white-space/android2.3.html लेकिन दस्तावेज़ से प्राप्त एकमात्र मूल्य .readyState ** लोड हो रहा है ** और ** लोड किया गया **। – dotnetCarpenter

उत्तर

7

readyState संपत्ति का मान हमेशा "interactive" है जब DOMContentLoaded निकाल दिया गया है।

// alternative to DOMContentLoaded event 
document.onreadystatechange = function() { 
    if (document.readyState == "interactive") { 
    initApplication(); 
    } 
} 

एक DOMContentLoaded हैंडलर के साथ परस्पर विनिमय है: इस तथ्य यह है कि MDN documentation दावों इसका सबूत है। आप spec here पर भी एक नज़र डाल सकते हैं, जो इसे दोहराता है।

+1

दुर्भाग्य से, यह एंड्रॉइड 2.3.5 पर सही नहीं है। मैंने अभी एक परीक्षण किया है, और नतीजा मेरे लिए पूरी तरह से अप्रत्याशित है: जब 'DOMContentLoaded' आग लगती है, तो 'document.readyState' का मान' 'लोड किया गया' '(यानी न तो' 'पूर्ण"', न ही '' इंटरैक्टिव " ', न ही '' लोड हो रहा है '')। – feklee

+0

@feklee ऐसा होना चाहिए क्योंकि कोई उप संसाधन नहीं है, जिस स्थिति में DOMContentLoaded और लोड ईवेंट एक साथ आग लगती है। मेरे द्वारा लिंक किए गए भाषण पर नज़र डालें। –

+0

ध्यान दें कि मान '' लोड किया गया है '', '' लोड नहीं हो रहा ''। इसके अलावा, एक बार 'लोड' 'घटना आग लगने के बाद, मान अन्य ब्राउज़रों में '" लोड हो रहा है "। मैंने एक [संबंधित प्रश्न] बनाया है (http://stackoverflow.com/questions/13348029/values-for-document-readystate-in-android-2-3-browser), दस्तावेज़ीकरण के लिए पूछना। – feklee