คนอื่น ๆ ได้ตอบว่า "อย่างไร" และสเป็คที่ยกมา นี่คือเรื่องราวจริงของ "ทำไมไม่<script/>
" หลังจากหลายชั่วโมงขุดลงในรายงานข้อผิดพลาดและรายชื่อผู้รับจดหมาย
HTML 4
HTML 4 จะขึ้นอยู่กับSGML
SGML มีบางส่วนshorttagsเช่น<BR//
, <B>text</>
, หรือ<B/text/
<OL<LI>item</LI</OL>
XML ต้องใช้รูปแบบครั้งแรก, นิยามใหม่ของการสิ้นสุดเป็น ">" (SGML มีความยืดหยุ่น) <BR/>
เพื่อที่จะกลายเป็น
อย่างไรก็ตาม, HTML ไม่ redfine ดังนั้น<SCRIPT/>
ควรจะ <SCRIPT>>
หมายถึง
(ใช่แล้วเครื่องหมาย '>' ควรเป็นส่วนหนึ่งของเนื้อหาและแท็กยังไม่ปิด)
แน่นอนนี้ไม่เข้ากันกับ XHTML และจะทำลายเว็บไซต์จำนวนมาก (ตามเวลาที่เบราว์เซอร์เป็นผู้ใหญ่พอที่จะดูแล เกี่ยวกับเรื่องนี้ ) ดังนั้นไม่มีใครดำเนินการ shorttagsและสเปคแนะนำให้กับพวกเขา
อย่างมีประสิทธิภาพแท็กที่สิ้นสุดด้วยตนเอง 'ที่ทำงาน' ทั้งหมดคือแท็กที่มีแท็กปิดท้ายที่ต้องห้ามในตัวแยกวิเคราะห์ที่ไม่สอดคล้องกับเทคนิคและอันที่จริงแล้วไม่ถูกต้อง มันเป็น W3C ซึ่งมาพร้อมกับสับนี้ช่วยเปลี่ยนเพื่อ XHTML ด้วยการทำให้HTML ได้
และ<script>
แท็กสิ้นสุด 's จะไม่ได้รับอนุญาต
แท็ก "การสิ้นสุดตนเอง" เป็นแฮ็คใน HTML 4 และไม่มีความหมาย
HTML 5
HTML5 มีห้าประเภทของแท็กและมีเพียง 'โมฆะ' และแท็ก 'ต่างชาติจะได้รับอนุญาตให้เป็นตัวปิด
เนื่องจาก<script>
ไม่ใช่โมฆะ ( อาจมีเนื้อหา) และไม่เป็นภาษาต่างประเทศ (เช่น MathML หรือ SVG) <script>
ไม่สามารถปิดตัวเองได้ไม่ว่าคุณจะใช้งานอย่างไร
แต่ทำไม พวกเขาไม่สามารถมองว่ามันเป็นต่างประเทศทำคดีพิเศษหรืออะไรบางอย่าง?
HTML 5 มีจุดมุ่งหมายที่จะเข้ากันได้กับการใช้งาน HTML 4 และ XHTML 1 ซึ่งไม่ได้อิงกับ SGML หรือ XML ไวยากรณ์ส่วนใหญ่เกี่ยวข้องกับการจัดทำเอกสารและรวมการใช้งาน (นี่คือสาเหตุที่<br/>
<hr/>
ฯลฯ เป็นHTML 5 ที่ถูกต้องแม้จะเป็น HTML4 ที่ไม่ถูกต้อง)
การปิดตัวเอง<script>
เป็นหนึ่งในแท็กที่การนำไปใช้งานต่างกัน มันใช้ในการทำงานใน Chrome, Safari , และ Opera ; ความรู้ของฉันมันไม่ทำงานใน Internet Explorer หรือ Firefox
นี้ถูกกล่าวถึงเมื่อ HTML 5 ได้ถูกร่างและได้ปฏิเสธเพราะมันแบ่ง เบราว์เซอร์ ที่เข้ากันได้ หน้าเว็บที่แท็กสคริปต์ปิดตัวเองอาจแสดงผลไม่ถูกต้อง (ถ้าทั้งหมด) ในเบราว์เซอร์เก่า มีข้อเสนออื่น ๆแต่พวกเขาไม่สามารถแก้ปัญหาความเข้ากันได้เช่นกัน
หลังจากร่างถูกนำออกใช้ WebKit จะปรับปรุง parser ให้สอดคล้องกัน
การปิดตัวเอง<script>
ไม่ได้เกิดขึ้นใน HTML 5 เนื่องจากความเข้ากันได้ย้อนหลังกับ HTML 4 และ XHTML 1
XHTML 1 / XHTML 5
เมื่อมันทำหน้าที่เป็น XHTML, <script/>
จะปิดจริงๆเป็นคำตอบอื่น ๆได้ระบุไว้
ยกเว้นว่าสเปคกล่าวว่ามันควรจะได้ทำงานเมื่อทำหน้าที่เป็น HTML:
เอกสาร XHTML ... อาจติดป้ายกำกับด้วยประเภทสื่ออินเทอร์เน็ต "text / html" [RFC2854] เนื่องจากเข้ากันได้กับเบราว์เซอร์ HTML ส่วนใหญ่
แล้วเกิดอะไรขึ้น?
มีคนถาม Mozillaเพื่อให้ Firefox แยกวิเคราะห์เอกสารตามXHTMLโดยไม่คำนึงถึงส่วนหัวของเนื้อหาที่ระบุ (รู้จักกันในชื่อการดมกลิ่นเนื้อหา ) สิ่งนี้จะได้รับอนุญาตให้สคริปต์ปิดตัวเองและการดมกลิ่นเนื้อหาเป็นสิ่งจำเป็นเพราะเว็บ hosters ยังไม่สุกพอที่จะให้บริการส่วนหัวที่ถูกต้อง; IE ทำได้ดีมาก
หากสงครามเบราว์เซอร์ครั้งแรกไม่ได้จบลงด้วย IE 6 XHTML อาจอยู่ในรายการด้วยเช่นกัน แต่มันก็จบลง และ IE 6 มีปัญหากับ XHTML ในความเป็นจริง IE ไม่สนับสนุนประเภท MIME ที่ถูกต้องเลยบังคับให้ทุกคนใช้text/html
XHTML เพราะ IE ถือครองส่วนแบ่งการตลาดที่สำคัญตลอดทั้งทศวรรษ
และยังดมเนื้อหาอาจจะ ไม่ดีจริงๆและคนที่จะบอกว่ามันควรจะหยุด
ในที่สุดปรากฎว่า W3C ไม่ได้หมายถึง XHTML ที่จะดักจับได้ : เอกสารมีทั้ง HTML และ XHTML และContent-Type
กฎ หนึ่งสามารถกล่าวว่าพวกเขากำลังยืนอยู่ บริษัท เกี่ยวกับ "เพียงทำตามสเป็คของเรา" และไม่สนใจสิ่งที่เป็นในทางปฏิบัติ ข้อผิดพลาดที่ดำเนินต่อไปในรุ่น XHTML รุ่นที่ใหม่กว่า
อย่างไรก็ตามการตัดสินใจครั้งนี้ตัดสินเรื่องของ Firefox มันเป็น 7 ปีก่อนที่จะ Chrome เกิด ; ไม่มีเบราว์เซอร์ที่สำคัญอื่น ๆ ดังนั้นมันจึงตัดสินใจ
การระบุ doctype เพียงอย่างเดียวไม่ทำให้เกิดการแยกวิเคราะห์ XML เนื่องจากข้อกำหนดดังต่อไปนี้