जो बेहतर है: <स्क्रिप्ट प्रकार = "टेक्स्ट / जावास्क्रिप्ट"> ... </ स्क्रिप्ट> या <स्क्रिप्ट> ... </ स्क्रिप्ट>


97

जो उपयोग करने के लिए बेहतर या अधिक सुविधाजनक है:

<script type="text/javascript">...</script> 

या

<script>...</script>

7
यदि आप जावास्क्रिप्ट का उपयोग भाषा के रूप में कर रहे हैं तो निश्चित रूप से 1 बेहतर है
चिन्मयी जी

मैं अनुमान लगा रहा हूं कि पटकथा को जावा-स्क्रिप्ट घोषित करने से आपको प्राप्त होने वाला प्रदर्शन महत्वहीन है, लेकिन महान प्रश्न है!
The_Butcher

10
अगर हम Html v4 और Html v5 में "सही" उत्तर भिन्न है?
दिमित्रिओस मिस्त्रियोसिस

यह नहीं है कि कौन सा बेहतर है लेकिन कब क्या उपयोग करना है; HTML5 घोषणा का उपयोग करते समय <!doctype html>, टैग type="text/javascript"पर MIME प्रकार संकेत का उपयोग करने की कोई आवश्यकता नहीं है <script>क्योंकि यह डिफ़ॉल्ट रूप से लागू होता है। दूसरी ओर (गैर- HTML5), यह उचित और अनुशंसित (MIME प्रकार संकेत के संदर्भ में type="text/javascript") है।
nyedidikeke

जवाबों:


138

क्या आपको एक प्रकार की विशेषता की आवश्यकता है? यदि आप HTML5 का उपयोग कर रहे हैं, नहीं। नहीं तो हां। एचटीएमएल 4.01 और एक्सएचटीएमएल 1.0 typeआवश्यक विशेषता को निर्दिष्ट करता है जबकि एचटीएमएल 5 में यह वैकल्पिक, डिफ़ॉल्ट के रूप में है text/javascript। HTML5 अब व्यापक रूप से लागू हो गया है, इसलिए यदि आप HTML5 सिद्धांत का उपयोग करते हैं,<script>...</script> तो वैध और एक अच्छा विकल्प है।

जैसा कि टाइप विशेषता में जाना चाहिए, application/javascript2006 में पंजीकृत MIME प्रकार को बदलने का इरादा है text/javascriptऔर सभी प्रमुख ब्राउज़रों के वर्तमान संस्करणों (इंटरनेट एक्सप्लोरर 9 सहित) द्वारा समर्थित है। प्रासंगिक RFC का एक उद्धरण :

यह दस्तावेज़ इस प्रकार टेक्स्ट / जावास्क्रिप्ट और टेक्स्ट / इस्मास्क्रिप्ट को परिभाषित करता है लेकिन उन्हें "अप्रचलित" के रूप में चिह्नित करता है। ऊपर के भाग के रूप में सूचीबद्ध प्रायोगिक और अपंजीकृत मीडिया प्रकारों का उपयोग हतोत्साहित किया जाता है। मीडिया प्रकार,

  * application/javascript
  * application/ecmascript

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

हालाँकि, IE 8 तक और संस्करण 8 सहित एक <script>तत्व के अंदर स्क्रिप्ट typeको या तो की विशेषता के साथ निष्पादित नहीं करता है , application/javascriptया application/ecmascriptइसलिए यदि आपको पुराने IE का समर्थन करने की आवश्यकता है, तो आप के साथ फंस गए हैं text/javascript


3
आपको typeविशेषता की "आवश्यकता" नहीं है । HTML4.01 या XHTML 1.0 के खिलाफ मान्य करना वह नहीं है जो आपको अब और वैसे भी करना चाहिए, और सभी ब्राउज़र बिना आपके टैग का समर्थन करेंगेtext/javascript
इयान स्टॉर्म टेलर

9
@ इयान: लेखन के समय, HTML5 कल्पना एक काम का मसौदा था और अभी तक स्थायी रूप से चलते लक्ष्य की अपनी वर्तमान स्थिति में रूपांतरित नहीं हुआ था। एचटीएमएल 5 के ब्राउज़र कार्यान्वयन अब वे कहाँ हैं, इसके पीछे एक महत्वपूर्ण तरीका था। इसे ध्यान में रखते हुए, मुझे लगता है कि उस समय एचटीएमएल 5 सामान्य वेब पर उपयोग के लिए व्यवहार्य नहीं था और मेरा जवाब बिल्कुल उचित था, और हमेशा "यदि आप चाहते हैं कि आपका एचटीएमएल वैध हो" तो अस्वीकरण किया जाए । मैं सहमत हूं कि चीजें तब से आगे बढ़ रही हैं और यह उत्तर संशोधन के साथ कर सकता है, लेकिन मैं असहमत हूं कि एचटीएमएल 4.01 में वेब पेज लिखना हमेशा गलत काम है।
टिम डाउन

1
+1, बस इस प्रश्न को एक डुबकी से खोजा। यह ऐनी वान केस्टरन के ब्लॉग पर कई पोस्टों की याद दिलाता है , जिसमें जावास्क्रिप्ट माइम प्रकार शामिल है , जहां वह इस पर चर्चा करता है। मैं इसे बहुत नहीं ढूँढ सकता, लेकिन मुझे यकीन था कि एक पोस्ट थी जहां उन्होंने बिल्कुल भी उपयोग न करने की सिफारिश की typeक्योंकि यह सभी ब्राउज़रों में काम करता है। शायद यह कोई और था।
एंडी ई

1
बस "धन्यवाद" कहना चाहता था क्योंकि मैं यह जानने की कोशिश कर रहा था कि IE8 और उसके नीचे "एप्लीकेशन / जावास्क्रिप्ट" JS फाइल क्यों नहीं चल रही है!
andrewtweber

के बारे में क्या: "पाठ / जावास्क्रिप्ट? संस्करण = 1.8"?
स्पार्क

10

दोनों काम करेंगे, लेकिन एक्सएचटीएमएल मानक आपको typeभी निर्दिष्ट करने की आवश्यकता है:

<script type="text/javascript">..</script> 

<!ELEMENT SCRIPT - - %Script;          -- script statements -->
<!ATTLIST SCRIPT
  charset     %Charset;      #IMPLIED  -- char encoding of linked resource --
  type        %ContentType;  #REQUIRED -- content type of script language --
  src         %URI;          #IMPLIED  -- URI for an external script --
  defer       (defer)        #IMPLIED  -- UA may defer execution of script --
  >

type = content-type [CI] यह विशेषता तत्व की सामग्री की स्क्रिप्टिंग भाषा को निर्दिष्ट करती है और डिफ़ॉल्ट स्क्रिप्टिंग भाषा को ओवरराइड करती है। स्क्रिप्टिंग भाषा एक सामग्री प्रकार (उदाहरण के लिए, "पाठ / जावास्क्रिप्ट") के रूप में निर्दिष्ट है। लेखकों को इस विशेषता के लिए एक मूल्य प्रदान करना चाहिए। इस विशेषता के लिए कोई डिफ़ॉल्ट मान नहीं है।

ऊपर जोर दिया गया नोटिस।

http://www.w3.org/TR/html4/interact/scripts.html

नोट: HTML5 (दूर) के रूप में, typeविशेषता की आवश्यकता नहीं है और डिफ़ॉल्ट है।


9

<script type="text/javascript"> </script>जब तक आप html5 का उपयोग नहीं करते हैं, तब तक आपको उपयोग करने की आवश्यकता है । उस स्थिति में आपको पसंद करने के लिए प्रोत्साहित किया जाता है <script> ... </script>(क्योंकि प्रकार की विशेषता उस मान के लिए डिफ़ॉल्ट रूप से निर्दिष्ट होती है)


5

यह वह सब है जिसकी आवश्यकता है:

<!doctype html>
<script src="/path.js"></script>

3

<script type="text/javascript"></script> क्योंकि इसका सही तरीका है और सभी ब्राउज़रों के साथ संगत है


-2

नवीनतम फ़ायरफ़ॉक्स के साथ, मुझे इसका उपयोग करना चाहिए:

<script type="text/javascript">...</script>

वरना स्क्रिप्ट ठीक से नहीं चल सकती।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.