2012-08-04 13 views
18

उदाहरण के लिए, अगर हम.tagName DOM प्रॉपर्टी एक अपरकेस मान क्यों देता है?

<html> 
    <head> 
     <title>FooBar</title> 
    </head> 
    <body></body> 
</html> 

है हम document.getElementByTagName("title").TagName करते हैं, तो हम TITLE (अपरकेस) होगा। जबकि एचटीएमएल मानकों को लोअरकेस में एचटीएमएल टैग लिखने की सिफारिश की जाती है।

मुझे पता है कि दोनों के बीच कोई संबंध नहीं है, लेकिन यह अभी भी समझ में नहीं आता है।

क्या कोई कारण है कि डोम को अपरकेस में टैग नाम वापस करना चाहिए?

+1

क्या आप HTML मानक का उद्धरण दे सकते हैं जो लोअरकेस की सिफारिश करता है? –

+0

ओह मुझे अभी एहसास हुआ कि 'xhtml' मानक है जिसके लिए टैग को लोअरकेस होना आवश्यक है, हालांकि इससे मेरा कोई फर्क नहीं पड़ता है। –

उत्तर

27

तकनीकी तौर पर, इस DOM Level 1 में अनिवार्य है:

एचटीएमएल डोम विहित अपरकेस रूप में किसी HTML तत्व में tagName देता है, स्रोत HTML दस्तावेज़ में मामले की परवाह किए बिना।

अपरकेस टैग नामों का सम्मेलन शायद विरासत से उत्पन्न होता है, जब HTML पहले एसजीएमएल के आधार पर विकसित किया गया था, और तत्व प्रकार को अपरकेस में घोषित किया गया था। this section of the HTML 4.01 spec discussing SGML, HTML and its syntax, साथ ही उदाहरण के लिए the HTML 4.01 Strict doctype definition देखें। HTML का समर्थन करने वाले किसी भी डोम कार्यान्वयन सूट का पालन करेंगे।

ध्यान दें कि लोअरकेस टैग नामों को केवल एक्सएचटीएमएल (लेकिन एक्सएमएल नहीं) में स्पष्ट रूप से आवश्यक है, और लेखकों को आम तौर पर एचटीएमएल/एक्सएचटीएमएल के बीच आसान पोर्टिंग के लिए लोअरकेस टैग लिखने की सिफारिश की जाती है, साथ ही पठनीयता में सुधार होता है। हालांकि, यह सिफारिश spec में नहीं होती है; यह सब कुछ कहता है कि टैग नाम एक्सएचटीएमएल और एक्सएमएल के विपरीत एचटीएमएल में केवल असंवेदनशील हैं।

+1

क्या किसी भी बग के परिणामस्वरूप या तो अन्य नियमों (या उनके संस्करण) के किसी भी ज्ञात उदाहरण हैं, इस नियम का सम्मान नहीं करते हैं और 'नोडनाम' पर कॉल पर लोअरकेस मान लौटाते हैं? – RTF

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