बदलते DOCTYPE किसी भी जावास्क्रिप्ट कार्यों वास्तव में पर निर्भर करता है टूट जाएगा चाहे कैसे रक्षा उन कार्यों तैयार कर रहे हैं :)
उदाहरण के लिए, जब दस्तावेज़ quirks मोड, document.body
(शरीर) में प्रदान की गई है एक तथाकथित "जड़ हो जाता है तत्व "; जब मानक मोड में प्रस्तुत किया जाता है, तो मूल तत्व आमतौर पर document.documentElement
(HTML) होता है। यह एक बल्कि पर्याप्त भेद है। यदि ब्राउज़र स्क्रिप्ट निर्धारित करने वाली एक स्क्रिप्ट हमेशा clientWidth
/clientHeight
document.documentElement
के गुणों से संबंधित प्रश्न पूछती है, तो यह स्पष्ट रूप से क्विर्क मोड में गलत परिणाम की रिपोर्ट करेगा (चूंकि, आईआईआरसी, document.documentElement.clientWidth/clientHeight
स्क्रीन तत्वों के बजाय HTML तत्व के आयामों का प्रतिनिधित्व करेगा)।
अधिकांश जेएस पुस्तकालय आमतौर पर स्पष्ट रूप से बताते हैं कि क्विर्कमोड समर्थित है (हम - प्रोटोटाइप.जेएस - उदाहरण के लिए, क्विर्क मोड का समर्थन नहीं करते हैं)।
ब्राउज़र के लिए एचटीएमएल बनाम एक्सएचटीएमएल, क्रम में की भाषण XHTML के रूप में दस्तावेज़ प्रस्तुत करने के लिए, आप सब से पहले उचित "सामग्री-प्रकार" हेडर (यानी आवेदन/xhtml + xml) के साथ सेवा करते चाहिए। यदि आप केवल एक्सएचटीएमएल में डक्ट टाइप बदलते हैं, लेकिन फिर भी "टेक्स्ट/एचटीएमएल" के रूप में दस्तावेज़ की सेवा करते हैं, तो अधिकांश ब्राउज़र मुझे पता है कि अभी भी HTML दस्तावेज़ के रूप में इसे पार्स (और प्रस्तुत) करेगा।
ध्यान दें कि आज तक, आईई "वास्तविक" एक्सएचटीएमएल सामग्री को समझ नहीं पा रहा है, यही कारण है कि पाठ/एचटीएमएल (HTML4.01 डक्टटाइप के साथ) दस्तावेजों की सेवा करना एक अनुशंसित तरीका है (जब तक IE समर्थित ब्राउज़र में नहीं है , बेशक)।
जहाँ तक 'असली' XHTML दस्तावेजों में डोम विशेषताओं, मैंने सुना है के रूप में है कि document.write
की तरह कुछ बातें 'काम नहीं करता "और तक पहुँचने नोड गुण हमेशा getAttribute/setAttribute
के माध्यम से किया जाना चाहिए कि (बल्कि सरल संपत्ति accessors के माध्यम से की तुलना में) । आईआईआरसी, innerHTML
के साथ कुछ मुद्दे भी हैं।
"असली" एक्सएचटीएमएल दस्तावेजों में डीओएम के बारे में जानकारी की कमी शायद सामान्य वेब के लिए दस्तावेजों/अनुप्रयोगों में इसकी अव्यवहारिकता के कारण है (यानी आईई की इसके समर्थन की कमी है)।
कुछ दस्तावेज़ मोड में डोम तत्व ऑब्जेक्ट.प्रोटोटाइप से प्राप्त नहीं होते हैं, और इसके कारण वे कस्टम विधियों या गुणों के साथ विस्तार योग्य नहीं हैं ... – inf3rno