แบบไหนดีกว่า: <script type =“ text / javascript”> … </script> หรือ <script> … </script>


99

แบบไหนดีกว่าหรือใช้สะดวกกว่า:

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

หรือ

<script>...</script>

7
หากคุณใช้จาวาสคริปต์เป็นภาษาแน่นอนว่าอันดับ 1 ดีกว่า
Chinmayee G

ฉันเดาว่าประสิทธิภาพที่ได้รับจากการประกาศสคริปต์เนื่องจาก java-script นั้นไม่มีนัยสำคัญ แต่เป็นคำถามที่ดี!
The_Butcher

10
คำตอบที่ "ถูกต้อง" แตกต่างกันหรือไม่หากเราอยู่ใน Html v4 และ Html v5
Dimitrios Mistriotis

ไม่ได้เกี่ยวกับว่าอันไหนดีกว่า แต่ควรใช้เมื่อใด เมื่อใช้การประกาศ HTML5 <!doctype html>ไม่จำเป็นต้องใช้คำใบ้ประเภท MIME type="text/javascript"บน<script>แท็กเนื่องจากจะใช้โดยค่าเริ่มต้น ในทางกลับกัน (ไม่ใช่ HTML5) ขอแนะนำและแนะนำ (โดยอ้างอิงคำใบ้ประเภท MIME type="text/javascript")
nyedidikeke

คำตอบ:


139

คุณต้องการแอตทริบิวต์ประเภทหรือไม่? หากคุณใช้ HTML5 ไม่ มิฉะนั้นใช่ HTML 4.01 และ XHTML 1.0 ระบุtypeแอตทริบิวต์ตามที่ต้องการในขณะที่ HTML5 มีเป็นทางเลือกซึ่งเป็นค่าtext/javascriptเริ่มต้น ขณะนี้ HTML5 ถูกนำไปใช้อย่างแพร่หลายดังนั้นหากคุณใช้หลัก HTML5 <script>...</script>ก็ถูกต้องและเป็นทางเลือกที่ดี

สิ่งที่ควรมีในแอตทริบิวต์ type ประเภท MIME ที่application/javascriptลงทะเบียนในปี 2549 มีวัตถุประสงค์เพื่อแทนที่text/javascriptและได้รับการสนับสนุนโดยเบราว์เซอร์หลักทั้งหมดในเวอร์ชันปัจจุบัน (รวมถึง Internet Explorer 9) คำพูดจากRFC ที่เกี่ยวข้อง :

เอกสารนี้จึงกำหนด text / javascript และ text / ecmascript แต่ทำเครื่องหมายว่า "ล้าสมัย" ไม่แนะนำให้ใช้ประเภทสื่อทดลองและไม่ได้ลงทะเบียนตามที่ระบุไว้ในส่วนด้านบน ประเภทสื่อ

  * application/javascript
  * application/ecmascript

ซึ่งกำหนดไว้ในเอกสารนี้มีไว้สำหรับการใช้งานทั่วไปและควรใช้แทน

อย่างไรก็ตาม IE และรวมถึงรุ่น 8 ไม่ได้รันสคริปต์ภายใน<script>element ที่มีtypeแอตทริบิวต์ของทั้งสองapplication/javascriptหรือapplication/ecmascriptดังนั้นหากคุณต้องการที่จะสนับสนุนเก่า IE, text/javascriptคุณติดอยู่กับ


3
คุณไม่ "ต้องการ" typeแอตทริบิวต์ การตรวจสอบความถูกต้องกับ HTML4.01 หรือ XHTML 1.0 ไม่ใช่สิ่งที่คุณควรทำอีกต่อไปและเบราว์เซอร์ทั้งหมดจะรองรับแท็กของคุณโดยไม่มีtext/javascript
Ian Storm Taylor

9
@Ian: ในขณะที่เขียนข้อมูลจำเพาะ HTML5 เป็นแบบร่างที่ใช้งานได้และยังไม่ได้ปรับเปลี่ยนเป็นสถานะปัจจุบันของเป้าหมายที่เคลื่อนที่ตลอดเวลา การใช้เบราว์เซอร์ HTML5 เป็นวิธีที่สำคัญมากในตอนนี้ เมื่อพิจารณาถึงสิ่งนี้ฉันคิดว่า HTML5 ในเวลานั้นไม่สามารถใช้งานได้บนเว็บทั่วไปและคำตอบของฉันก็ยุติธรรมอย่างยิ่งและถือข้อจำกัดความรับผิดชอบ"หากคุณต้องการให้ HTML ของคุณถูกต้อง"เสมอ ฉันยอมรับว่าสิ่งต่างๆได้ดำเนินต่อไปและคำตอบนี้สามารถทำได้ด้วยการแก้ไข แต่ฉันไม่เห็นด้วยว่าการเขียนหน้าเว็บใน HTML 4.01 นั้นเป็นสิ่งที่ผิดอยู่เสมอ
Tim Down

1
+1 เพิ่งค้นพบคำถามนี้จากการหลอกลวง มันทำให้ฉันนึกถึงโพสต์ต่างๆในบล็อกของ Anne Van Kesteren รวมถึงประเภท JavaScript MIMEที่เขาพูดถึงเรื่องนี้ หาไม่เจอ แต่แน่ใจว่ามีโพสต์ที่เขาแนะนำให้ไม่ใช้typeเลยเพราะใช้ได้กับทุกเบราว์เซอร์ อาจจะเป็นคนอื่น
Andy E

1
แค่อยากจะพูดว่า "ขอบคุณ" ในขณะที่ฉันพยายามหาสาเหตุว่าทำไมไฟล์ JS "application / javascript" จึงไม่ถูกเรียกใช้งานบน IE8 และต่ำกว่า
andrewtweber

แล้ว: "text / javascript; version = 1.8" ล่ะ?
SparK

10

ทั้งสองอย่างจะใช้งานได้ แต่มาตรฐาน xhtml ต้องการให้คุณระบุ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] แอ็ตทริบิวต์นี้ระบุภาษาสคริปต์ของเนื้อหาขององค์ประกอบและแทนที่ภาษาสคริปต์เริ่มต้น ภาษาสคริปต์ถูกระบุเป็นประเภทเนื้อหา (เช่น "text / javascript") ผู้เขียนต้องระบุค่าสำหรับแอตทริบิวต์นี้ ไม่มีค่าเริ่มต้นสำหรับแอตทริบิวต์นี้

แจ้งความสำคัญข้างต้น

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

หมายเหตุ:สำหรับ HTML5 (ไกลออกไป) typeไม่จำเป็นต้องใช้แอตทริบิวต์และเป็นค่าเริ่มต้น


9

คุณจำเป็นต้องใช้<script type="text/javascript"> </script>เว้นแต่คุณจะใช้ html5 ในกรณีนี้คุณควรเลือก<script> ... </script>(เนื่องจากแอตทริบิวต์ type ถูกระบุโดยค่าเริ่มต้นสำหรับค่านั้น)



3

<script type="text/javascript"></script> เพราะเป็นวิธีที่ถูกต้องและเข้ากันได้กับเบราว์เซอร์ทั้งหมด


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.