1.การฝังเป็นสิ่งผิดกฎหมาย
แท็ก <embed> เป็นแท็กส่วนตัวของ Netscape แม้ว่าแท็ก <embed> จะถูกนำมาใช้กันอย่างแพร่หลาย ตั้งแต่ HTML3.2, HTML4.0 ถึง XHTML1.0 แต่ W3C ไม่ได้รวมแท็กนี้ไว้ด้วย หน้าที่ใช้แท็ก <embed> จะไม่ผ่านการตรวจสอบ W3C
2. คุณควรใช้วัตถุ
W3C แนะนำแท็ก <object> แม้แต่ใน XHTML2 <img> จะถูกแทนที่ด้วย <object> รหัสที่จะแทรกแฟลชโดยใช้วิธี <object> คือ:
ต่อไปนี้เป็นเนื้อหาที่ยกมา: <ประเภทวัตถุ = "application/x-shockwave-flash" data = "test.swf" width = "200" height = "100"> <parm name = "ภาพยนตร์" value = "test.swf /> </ object> |
อย่างไรก็ตาม วิธีการนี้ไม่สามารถแสดงได้อย่างถูกต้องบน IE5-IE6/Win (ไม่สามารถเล่นได้อย่างต่อเนื่องและไม่สามารถเล่นได้จนกว่าจะดาวน์โหลด) แต่สามารถแสดงได้อย่างถูกต้องในเวอร์ชันที่ต่ำกว่า ต่อมาวิธีการปรับไฟล์แฟลชขนาดเล็กก่อนแล้วจึงฝังไฟล์แฟลชขนาดใหญ่ช่วยแก้ปัญหาการเล่นต่อเนื่องได้ อย่างไรก็ตาม ใน IE5 ขึ้นไป บางครั้งก็ยังไม่สามารถแสดงแฟลชได้
3. มาตรการชั่วคราวในปัจจุบัน
แล้วคุณจะทำอย่างไรไม่เพียงแต่ให้เป็นไปตามมาตรฐาน แต่ยังแสดงแฟลชอย่างถูกต้องในทุกเบราว์เซอร์ด้วย เว็บไซต์ Macromedia ผ่านการตรวจสอบ W3c อย่างไร
นักออกแบบบางคนคิดว่าจะใช้ JavaScript เพื่อซ่อนแท็ก <embed> ที่ผิดกฎหมาย
ต่อไปนี้เป็นเนื้อหาที่ยกมา: <script type="text/javascript "> if (navegiator . mimeTypes && navigator . mimeTypes["application/x-shockwave-flash"] { document .write('<embed src="test . swf" ... |
นี่เป็นทางออกที่ดีกว่าในปัจจุบัน คุณต้องใส่แฟลชและใช้ js เพื่อเรียกมัน วิธีนี้สามารถหลอกลวงโปรแกรมตรวจสอบ W3C และทำให้หน้าผ่านการตรวจสอบได้ แต่มันเป็นเพียงการ "โกง" ไม่ได้มาตรฐานจริงๆ
Macromedia ทำอย่างไร ดูรหัสนี้:
ต่อไปนี้เป็นเนื้อหาที่ยกมา: <!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : ส่วนหัวที่ยอมรับของเบราว์เซอร์ของคุณระบุว่าคุณมี Flash 6,0,65,0 หรือดีกว่า ดังนั้นคุณจึงพอใจกับภาพยนตร์ Flash 6 นี้ ตรงนี้เลย มา.--> |
ใช้แนวทางประนีประนอม:
(1) ขั้นแรก จาวาสคริปต์จะกำหนดเวอร์ชันของเบราว์เซอร์และเวอร์ชันของโปรแกรมเล่นแฟลช
(2) สร้างโค้ด HTML แบบไดนามิกในพื้นหลังตามเวอร์ชันต่างๆ
พูดง่ายๆ ก็คือใช้เมธอด <object> เป็นค่าเริ่มต้น หากเบราว์เซอร์ไม่สามารถจัดการประเภท MIME "application/x-shockwave-flash" ของอ็อบเจ็กต์ได้ มันจะแทรกองค์ประกอบย่อย <embed> พูดตรงๆ ก็คือคล้ายกับการใช้ js เพื่อซ่อน <embed> นอกจากนี้ยังเป็นวิธี "โกง" อีกด้วย แต่นี่เป็นวิธีมาตรฐานและสมบูรณ์แบบที่สุดที่สามารถทำได้ในปัจจุบัน
หากคุณต้องการละทิ้ง <embed> จริงๆ คุณสามารถรอให้เบราว์เซอร์ IE ให้การสนับสนุนที่ดีกว่าสำหรับ <object> เท่านั้น อาจจะจนกว่า Longhorn จะออกมา