ในเว็บไซต์ที่มากขึ้นการใช้ XHTML จะแทนที่ HTML4 ด้วยความเร็วที่รวดเร็วมาก อย่างไรก็ตามเบราว์เซอร์กระแสหลักบางส่วนในปัจจุบันไม่รองรับ XHTML และผู้ผลิตเว็บเพจบางรายไม่เข้าใจความแตกต่างระหว่าง XHTML และ HTML4 เพียงพอซึ่งทำให้ XHTML ช้าในการพัฒนาเว็บ
xhtml คือ xml ไม่ใช่ htmlปัจจุบันหนึ่งในความเข้าใจผิดหลักเกี่ยวกับ XHTML คือมันเป็น HTML อีกรุ่นหนึ่ง ข้อเท็จจริงหนึ่งที่ทำให้เกิดความเข้าใจผิดนี้คือ Microsoft Internet Explorer รองรับ XHTML เท่านั้นด้วยรูปแบบข้อความ MIME/HTML และไม่ใช่รูปแบบแอปพลิเคชันที่แนะนำ/XHTML+XML
เมื่อหน้า XHTML ถูกแยกวิเคราะห์ในรูปแบบ MIME ของข้อความ/HTML จะไม่มีความแตกต่างจากหน้า HTML และเมื่อมีการแยกวิเคราะห์ในรูปแบบ MIME ของข้อความ/XML หรือแอปพลิเคชัน/XHTML+XML มันจะสอดคล้องกับกฎการเขียน XML ที่เข้มงวด
รูปแบบ XHTML ที่ถูกต้องเป็นโปรแกรม XML และจำเป็นต้องปฏิบัติตามกฎที่เข้มงวดต่อไปนี้เมื่อเขียน: 1. อักขระ <และ & ไม่ได้รับอนุญาตให้ปรากฏในเนื้อหาเอกสาร XHTML เว้นแต่จะรวมอยู่ในแท็ก CDATA (<! [CDATA [... ]]>) 2. ฉลากความคิดเห็น (<! --...-->) ไม่สามารถมีบาร์แนวนอนติดต่อกันได้สองแถบ (-) 3. เนื้อหาที่รวมอยู่ในแท็กความคิดเห็น (<! --...-->) จะถูกละเว้น ปัญหาในสไตล์และเนื้อหาสคริปต์เนื้อหาภายในสไตล์และแท็กสคริปต์จะทำให้เกิดความแตกต่างที่แตกต่างกันเมื่อ XHTML ถูกแยกวิเคราะห์ในรูปแบบ XML (แทนที่จะเป็นรูปแบบ HTML)
JavaScript มีอักขระที่ไม่สามารถมีอยู่ใน XHTML อักขระพิเศษบางตัวใน JavaScript เป็นอักขระที่ไม่สามารถมีอยู่นอกแท็ก CDATA ของ XHTML<script type = text/javascript>
var i = 0;
ในขณะที่ (++ i <10) {
-
-
</script>
หมายเหตุ: โค้ดตัวอย่างข้างต้นไม่ใช่รูปแบบ XHTML ที่ดีเนื่องจากใช้แท็กที่ไม่อนุญาตใน XHTML หรือ XML <
ใช้ความคิดเห็นในรูปแบบและเนื้อหาสคริปต์ผู้เขียนที่คุ้นเคยกับ HTML มักจะเข้าใจว่าการวางสไตล์และเนื้อหาแท็กสคริปต์ในแท็กความคิดเห็นจะซ่อนเนื้อหาเหล่านี้ไว้ในเบราว์เซอร์ แต่เบราว์เซอร์บางตัวไม่สามารถเข้าใจได้
<style type = text/css>
-
ร่างกาย {พื้นหลังสี: สีน้ำเงิน; สี: สีเหลือง;}
-
</style>
<script type = text/javascript>
-
var i = 0;
var sum = 0;
สำหรับ (i = 0; i <10; ++ i)
-
sum += i;
-
การแจ้งเตือน ('sum =' + sum);
-
</script>
ตัวอย่างข้างต้นแสดงวิธีการละเว้นเนื้อหาในแท็กความคิดเห็นในเบราว์เซอร์ ในเวลาเดียวกันตัวอย่างนี้ยังแสดงความแตกต่างระหว่างเนื้อหาของเบราว์เซอร์ในรูปแบบข้อความ/XML และรูปแบบแอปพลิเคชัน/XHTML+XML
Mozilla 1.1+ / Opera 7
ไม่มีการใช้ CSS ไม่มีการเรียกใช้ JavaScript
Netscape 7.0x / Mozilla 1.0.x
ไม่ใช้ CSS แต่ดำเนินการ JavaScript
Internet Explorer 5.5+
เอกสารจะไม่ปรากฏขึ้น (ดู: https://developer.mozilla.org/ta ... _in_xhtml_documents)
สไตล์และจาวาสคริปต์มีสองแถบแนวนอนติดต่อกัน (-)ปัญหาอื่นเกิดขึ้นเมื่อใช้แท็กความคิดเห็นสำหรับการประมวลผลใน JavaScript ในหน้า XHTML คือจะมีสองแถบแนวนอนติดต่อกัน (-) ใน JavaScript:
<script type = text/javascript>
-
var i;
var sum = 0;
สำหรับ (i = 10; i> 0; --i)
-
sum += i;
-
-
</script>
ใช้ CDATA แทนความคิดเห็นการวางเนื้อหาไว้ในแท็กสคริปต์ลงในบล็อก CDATA สามารถจัดการกับปัญหาของสองแถบติดต่อกันในความคิดเห็นได้ดี แต่สิ่งนี้จะไม่ได้รับการสนับสนุนจากเบราว์เซอร์รุ่นต่ำกว่าบางรุ่นเพราะพวกเขาไม่เข้าใจ XML โชคดีที่เราสามารถแสดงความคิดเห็นบล็อก CDATA โดยใช้ผู้แสดงความคิดเห็นใน JavaScript เพื่อให้ได้ความเข้ากันได้
<script type = text/javascript>
// <! [cdata [
var i = 0;
ในขณะที่ (++ i <10)
-
-
-
-
</script>
วิธีการประมวลผลความเข้ากันได้ของ XHTML และ HTML ที่แนะนำอย่าเขียนสไตล์และสคริปต์โดยตรงในหน้า XHTML ทางเลือกที่ดีคือการใช้ไฟล์ภายนอกเพื่อเขียน CSS และ JavaScript ก่อนที่จะแนะนำใน XHTML
โซลูชันคำแนะนำนี้ดูดีมาก ไม่ว่าในกรณีใดจะทำให้หน้าเปลี่ยนข้อความจากข้อความ/HTML เป็นแอปพลิเคชัน/XHTML+XML อย่างน้อยในอีกไม่กี่ปีข้างหน้า