2008-10-15 11 views
65

पिछले लोगों में स्क्रिप्ट को प्रदर्शित करने से "पुराने" ब्राउज़र को रोकने के लिए जावास्क्रिप्ट के ब्लॉक के आसपास HTML टिप्पणी टैग लपेटते थे। यहां तक ​​कि लिंक्स जावास्क्रिप्ट को अनदेखा करने के लिए काफी स्मार्ट है, तो कुछ लोग ऐसा क्यों करते रहते हैं? क्या इन दिनों कोई वैध कारण हैं?क्या जावास्क्रिप्ट के ब्लॉक पर एचटीएमएल टिप्पणियों का उपयोग करना अभी भी समझ में आता है?

<script type="text/javascript"> 
<!-- 
//some js code 
//--> 
</script> 

संपादित करें: मुझे एक स्थिति मिली है। ड्रीमवेवर जैसे कुछ कोड एडिटर, "डिज़ाइन व्यू" में जावास्क्रिप्ट स्ट्रिंग के अंदर HTML को उद्धृत करते हैं और इसे अपने पृष्ठ के हिस्से के रूप में प्रदर्शित करने का प्रयास करते हैं।

+4

मुझे लगता है कि केन कीस, जूनियर "बंदर/केले/सीढ़ी/पानी स्प्रे" प्रयोग के साथ इसका थोड़ा सा संबंध है। लोग इसे करते रहते हैं क्योंकि वे इसे देखते हैं, लेकिन कभी पूछें क्यों नहीं। –

+0

'->' होना चाहिए // // -> ' –

उत्तर

71

नहीं, बिल्कुल नहीं। किसी भी उपयोगकर्ता एजेंट, सर्च इंजन स्पाइडर, या इन दिनों बिल्कुल कुछ भी जावास्क्रिप्ट को अनदेखा करने के लिए पर्याप्त स्मार्ट है अगर यह इसे निष्पादित नहीं कर सकता है।

वहाँ केवल एक बहुत ही संक्षिप्त अवधि जब यह सब उपयोगी पर था था, और यह ब्राउज़रों जो इस कमोबेश है के रूप में आवश्यक के आसपास 1996

+6

एलओएल - दोषी! लेकिन फिर, मैंने इसे 1 99 6 में करना सीखा और किसी ने कभी भी अलग नहीं कहा है ... –

+0

मुझे लगता है कि मैंने पढ़ा है कि इसे बहिष्कृत किया गया है लेकिन मुझे लिंक नहीं मिल रहा है। – some

19

वहाँ यह अब और नहीं करने के लिए एक अच्छा कारण नहीं है था, वेब से गायब हो गया।

वास्तव में, यह कर वास्तव में कुछ पुराने ब्राउज़र के प्रयास के साथ अनायास ही समस्याओं पेज व्याख्या करने के लिए पैदा कर सकता है अगर यह एक्सएचटीएमएल उपयोग करता है - developer.mozilla.org से:

  • मोज़िला 1.1 +/ओपेरा 7

    सीएसएस लागू न करें या जावास्क्रिप्ट निष्पादित न करें।

  • नेटस्केप 7.0x/मोज़िला 1.0.x

    सीएसएस लागू न करें लेकिन JavaScript निष्पादित करता है।

  • इंटरनेट एक्सप्लोरर 5.5 +

    दस्तावेज़ को प्रदर्शित नहीं कर सकते।

कि साइट भी severalproblems उपरोक्त उदाहरण से जोड़ता है।

14

आप हालांकि CDATA का उपयोग करना चाहिए ...

<script type="text/javascript" charset="utf-8"> 
/* <![CDATA[ */ 

/* ]]> */ 
</script> 

क्योंकि अगर आपके पास '<', '>', '&', आदि अपने कोड में, कोड को मान्य नहीं होंगे :)

<script charset="utf-8"> 
//<![CDATA[ 

//]]> 
</script> 

शायद टी:

+11

यदि आप एक्सएचटीएमएल अनुपालन करना चाहते हैं, अन्यथा आपको इसकी आवश्यकता नहीं है। –

+4

यदि आप वास्तव में अच्छी तरह से गठित XML दस्तावेज़ों में जावास्क्रिप्ट का उपयोग करना चाहते हैं, तो इसे बाहरी .js फ़ाइल में रखें। उदाहरण के लिए, मोज़िला एक्सयूएल अनुप्रयोगों की आवश्यकता है। – MarkR

+0

हे, उत्तर दस्तावेज़ स्क्रिप्ट में था। संभोग, मैं बाहरी फाइलों में सभी सीएसएस और जेएसएस डालने की सलाह देता हूं :) –

1

CDATA ब्लॉक का उपयोग करने के न होने का कारण हैं मैं अपने docttype के रूप में HTML 4.01 स्ट्रिक्ट का उपयोग करना पसंद में से एक Staicu मैंने सोचा कि यह निम्न सिंटैक्स का इस्तेमाल किया है, लेकिन, वह दो बराबर हैं? किसी को पता है कि दूसरे पर एक फायदा है या नहीं?

+0

// एक पंक्ति टिप्पणी है,/* */एक ब्लॉक टिप्पणी है। आप किसी एक का उपयोग जावास्क्रिप्ट में कर सकते हैं, यह वही है (यह टिप्पणी की गई है)। लेकिन आप सर्वर द्वारा भेजे गए एमआईएमई प्रकार के पक्ष में ब्राउज़र द्वारा टाइप = "टेक्स्ट/जावास्क्रिप्ट" – some

+1

टाइप = "टेक्स्ट/जावास्क्रिप्ट" को अनदेखा करना भूल गए हैं। यह चूक जानबूझकर थी। –

+1

एंड्रयू: मुझे समझ में नहीं आता है। यह HTML दस्तावेज़ में एम्बेडेड एक स्क्रिप्ट है, इसलिए 'टेक्स्ट/जावास्क्रिप्ट' कहां से आ रहा है? साथ ही, मुझे नहीं लगता कि आपको 'charset' विशेषता का उपयोग करना चाहिए यदि कोई' src' विशेषता नहीं है, क्योंकि 'charset' विशेषता' src' विशेषता का उपयोग करने के लिए लिंक की गई फ़ाइल के वर्णमाला को निर्दिष्ट करती है। –

11

नरक नहीं, किसी को भी इसकी आवश्यकता नहीं है और यदि आप करते हैं, तो आपको परवाह करने के लिए कुछ और समस्याएं हैं। जब आप वास्तव में उन ब्राउज़र का समर्थन करना चाहते हैं जिन्हें इसकी आवश्यकता है, तो आपको बहुत अधिक चीजों के लिए देखना होगा। सीएसएस की कमी के बारे में बात भी नहीं!

हालांकि, बड़ी समस्या यह है कि लोग यह गलत करते हैं।असल में अपने उदाहरण, गलत है, क्योंकि लाइन

--> 

//--> 

पढ़ना चाहिए दूसरी बात आप टाइप विशेषता कहते हैं, "पाठ/जावास्क्रिप्ट" क्या गलत भी है। यह "टेक्स्ट/जावास्क्रिप्ट" (सभी निचले मामले) हैं लेकिन यह अप्रचलित है (IANA List देखें) और अब यह "एप्लिकेशन/जावास्क्रिप्ट" होना चाहिए (another IANA List देखें। हालांकि, जेएस गुरु के डगलस क्रॉकफोर्ड ने कहा कि आपको बस छोड़ना चाहिए इसे बाहर

एक और समस्या कोई भी पहले ही उल्लेख किया है:।। एचटीएमएल टिप्पणियों के भीतर, "-" अनुमति नहीं है और इसका मतलब है कि आप उपयोग नहीं कर सकते "एक्स-" एक के बाद एक्स घटती को

+0

वह सही है। यह जावास्क्रिप्ट को -> को निष्पादित करने से रोकता है – jezzipin

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