ทำไมเฟรมจึงเลิกใช้ใน HTML5 แต่ไม่ใช่ iFrames ท้ายที่สุดแล้วแทบจะไม่มีความแตกต่างระหว่างสองสิ่งนี้ ในหลาย ๆ กรณีที่ใช้อย่างใดอย่างหนึ่งของพวกเขาจะให้ผลลัพธ์เดียวกัน (ให้อภัยฉันถ้าฉันผิด)?
ทำไมเฟรมจึงเลิกใช้ใน HTML5 แต่ไม่ใช่ iFrames ท้ายที่สุดแล้วแทบจะไม่มีความแตกต่างระหว่างสองสิ่งนี้ ในหลาย ๆ กรณีที่ใช้อย่างใดอย่างหนึ่งของพวกเขาจะให้ผลลัพธ์เดียวกัน (ให้อภัยฉันถ้าฉันผิด)?
คำตอบ:
โพสต์ของคุณมีความเข้าใจผิดสองอย่าง ก่อนอื่นองค์ประกอบframe
และframeset
ไม่ได้คัดค้านใน HTML5 พวกเขาล้าสมัย (กล่าวคือพวกเขาถูกลบทั้งหมด)
ประการที่สองframe
และframeset
องค์ประกอบนั้นไม่เหมือนกันกับiframe
องค์ประกอบและไม่ให้ผลลัพธ์เดียวกัน:
frameset
องค์ประกอบแทนที่องค์ประกอบร่างกายในหน้าเว็บเป็นวิธีที่จะรวมถึงรูปแบบเอกสารที่แตกต่างกันสำหรับหน้าเว็บ: พวกเขากำลังที่ไม่ดีสำหรับการใช้งานและการเข้าถึงและสิ่งที่พวกเขาตั้งใจที่จะประสบความสำเร็จได้ถูกแทนที่อย่างสมบูรณ์โดย CSS และการพัฒนาด้านเซิร์ฟเวอร์แพร่หลาย
ในทางกลับกันiframe
องค์ประกอบจะไม่แทนที่เนื้อความของหน้า มันทำหน้าที่เป็นวิธีการรวมบริบทการสืบค้นใหม่ที่ฝังอยู่ในบล็อกของเนื้อหา มันไม่ได้ประสบปัญหาการใช้งานหรือปัญหาการช่วยการเข้าถึงเช่นเดียวกับตัวแบบ frameset และใช้เกือบทุกที่ที่ต้องการรวมบริบทการสืบค้นที่ฝังตัว (วิดเจ็ตเป็นตัวอย่างที่อุดมสมบูรณ์ที่สุด) 1
iframe
ใน HTML5 ยังใช้เวลาในคุณลักษณะเพิ่มเติมในการที่จะสามารถทดลองใช้ผลิตภัณฑ์ที่ช่วยให้เอกสารของผู้ปกครองในการตัดสินใจสิ่งที่ได้รับการดำเนินการภายใน วิธีนี้ช่วยให้การวัดความปลอดภัยสำหรับเอกสารหลัก (และผู้เยี่ยมชมเอกสารหลัก) เมื่อฝังเนื้อหาที่ไม่น่าเชื่อถือ
หมายเหตุ 1:object
องค์ประกอบค่อนข้างคาบเกี่ยวกับiframe
องค์ประกอบ แต่มันก็มีรูปแบบที่แตกต่างกันเนื้อหา (ซึ่งมีวัตถุประสงค์หลักสำหรับปลั๊กอิน) มีชุดของตัวเองคำเตือนและไม่ได้มี sandboxing แอตทริบิวต์iframe
องค์ประกอบมี
Frames (frameset) ทำหน้าที่เป็นเอกสาร มันถูกลบเพราะมันทำลายโครงสร้างเอกสาร HTML และการนำทาง เช่น. คุณมีลิงค์ในเฟรมหนึ่งเนื้อหาในอีกอันคุณไม่สามารถเปิดลิงค์จากหน้าในหน้าต่างใหม่คุณไม่สามารถลิงค์ไปยังหน้าย่อยเฉพาะเป็นต้น
ในทางตรงกันข้าม iframe จะไม่ทำลายสิ่งใดหากใช้อย่างถูกต้องเพราะมันหมายถึงเนื้อหาของแซนด์บ็อกซ์ (เช่นโฆษณา)
เฟรมเซตมักจะใช้ในวิธีที่พวกเขาทำลายหลักการพื้นฐานของเว็บ - ว่าแต่ละเอกสารมี URL เดียว สิ่งนี้นำไปสู่ปัญหาเกี่ยวกับการเชื่อมโยงที่คั่นหน้าเครื่องมือค้นหา ฯลฯ
การใช้งานเฟรมเซตทั่วไปจะเป็นเฟรมที่ด้านบนที่มีโลโก้หรือส่วนหัวเฟรมที่ด้านข้างพร้อมเมนูและเฟรมเนื้อหา แต่เครื่องมือค้นหาจัดทำดัชนีหน้าเว็บแต่ละหน้าดังนั้นเมื่อคุณพบหน้าเว็บบางหน้าใน Google มันจะลิงก์ไปยังหน้าเนื้อหาโดยตรงโดยไม่มีเฟรมเซตดังนั้นคุณจึงสูญเสียการนำทาง ปัญหาเกี่ยวกับลิงก์และบุ๊กมาร์กคือโดยทั่วไปแล้วคุณต้องการเชื่อมโยงหรือทำบุ๊กมาร์กหน้าเนื้อหาเฉพาะภายในเฟรมเซตโดยไม่สูญเสียชุดเฟรม ไม่มีวิธีง่ายๆในการทำเช่นนั้น
เหตุผลที่เฟรมเซตเริ่มได้รับความนิยมในอันดับแรกคือเนื่องจากอนุญาตให้ส่วนหัวและเมนูที่มีตำแหน่งคงที่พร้อมด้วยพื้นที่เนื้อหาเลื่อน แต่นั่นสามารถทำได้ง่ายขึ้นด้วย CSS วันนี้ นอกจากนี้เฟรมยังอนุญาตให้คุณใช้องค์ประกอบทั่วไปเช่นโลโก้และเมนูในหลาย ๆ หน้าโดยไม่ต้องใช้การเข้ารหัสฝั่งเซิร์ฟเวอร์ นี่เป็นข้อได้เปรียบในเวลาที่การเข้ารหัสฝั่งเซิร์ฟเวอร์นั้นน่าเบื่อและเกิดข้อผิดพลาดได้ง่าย (เช่นสคริปต์ CGI) และโฮสต์จำนวนมากไม่อนุญาตให้ใช้สคริปต์ฝั่งเซิร์ฟเวอร์เลย วันนี้ด้วย Content Management Systems (CMS) และแพลตฟอร์มฝั่งเซิร์ฟเวอร์ที่ดีกว่านี้จัดการได้ดีกว่าในฝั่งเซิร์ฟเวอร์
ดังนั้นโดยทั่วไปไม่มีข้อได้เปรียบในการใช้ frameset ปัญหามากมาย
IFrames สามารถใช้แบบเดียวกับที่ใช้ framesets และในกรณีนี้พวกเขายังนำไปสู่ปัญหาเดียวกัน แต่ก็มีการใช้ iframe ที่ถูกกฎหมายจำนวนมากซึ่งไม่นำไปสู่ปัญหาเดียวกัน