एचटीएमएल
एक HTML पार्सर स्क्रिप्ट के भाग के रूप में <script>
और उसके बीच सब कुछ </script>
समझेगा। कुछ कार्यान्वयन को एक सही समापन टैग की आवश्यकता नहीं है; वे स्क्रिप्ट व्याख्या को " </
" पर रोक देते हैं , जो चश्मे के अनुसार सही है ।
HTML5 में अपडेट करें , और वर्तमान ब्राउज़रों के साथ, अब ऐसा नहीं है।
तो, HTML में, यह संभव नहीं है:
<script>
var x = '</script>';
alert(x)
</script>
एक CDATA
सेक्शन का कोई प्रभाव नहीं पड़ता है । इसलिए आपको लिखना जरूरी है
var x = '<' + '/script>'; // or
var x = '<\/script>';
या इसी के समान।
यह XHTML फ़ाइलों के रूप में भी लागू होता है text/html
। (चूंकि IE XML सामग्री प्रकारों का समर्थन नहीं करता है, यह ज्यादातर सच है।)
एक्सएमएल
XML में, विभिन्न नियम लागू होते हैं। ध्यान दें कि (गैर IE) ब्राउज़र केवल एक XML पार्सर का उपयोग करते हैं यदि XHMTL दस्तावेज़ को XML सामग्री प्रकार के साथ परोसा जाता है।
XML पार्सर के लिए, एक script
टैग किसी भी अन्य टैग से बेहतर नहीं है। विशेष रूप से, एक स्क्रिप्ट नोड में गैर-टेक्स्ट चाइल्ड नोड्स हो सकते हैं, जिन्हें " <
" द्वारा ट्रिगर किया गया है ; और " &
" चिन्ह एक वर्ण इकाई को दर्शाता है।
तो, XHTML में यह संभव नहीं है:
<script>
if (a<b && c<d) {
alert('Hooray');
}
</script>
इसके चारों ओर काम करने के लिए, आप पूरी स्क्रिप्ट को एक CDATA
सेक्शन में लपेट सकते हैं । यह पार्सर को बताता है: 'इस खंड में, " <
" और " &
" को नियंत्रण वर्णों के रूप में न मानें ।' जावास्क्रिप्ट इंजन को " <![CDATA[
" और " ]]>
" निशान की व्याख्या करने से रोकने के लिए , आप उन्हें टिप्पणियों में लपेट सकते हैं।
यदि आपकी स्क्रिप्ट में कोई " <
" या " &
" नहीं है, तो आपको किसी CDATA
भी अनुभाग की आवश्यकता नहीं है।