<iframe>
องค์ประกอบ iframe แสดงถึงบริบทการสืบค้นที่ซ้อนกัน มาตรฐาน HTML 5 - " <iframe>
องค์ประกอบ"
ส่วนใหญ่ใช้เพื่อรวมทรัพยากรจากโดเมนอื่นหรือโดเมนย่อย แต่สามารถใช้เพื่อรวมเนื้อหาจากโดเมนเดียวกันได้เช่นกัน <iframe>
'แข็งแรงคือว่ารหัสที่ฝังตัวคือ 'สด' และสามารถสื่อสารกับเอกสารแม่
<embed>
มาตรฐานใน HTML 5 ก่อนหน้านั้นเป็นแท็กที่ไม่เป็นมาตรฐานซึ่งยอมรับโดยเบราว์เซอร์หลักทั้งหมด พฤติกรรมก่อน HTML 5 อาจแตกต่างกัน ...
องค์ประกอบฝังให้จุดรวมสำหรับแอปพลิเคชันภายนอก (โดยทั่วไปไม่ใช่ HTML) หรือเนื้อหาแบบโต้ตอบ ( มาตรฐาน HTML 5 - " <embed>
องค์ประกอบ" )
ใช้เพื่อฝังเนื้อหาสำหรับปลั๊กอินของเบราว์เซอร์ ข้อยกเว้นสำหรับเรื่องนี้คือ SVG และ HTML ที่จัดการแตกต่างกันไปตามมาตรฐาน
รายละเอียดของสิ่งที่สามารถและไม่สามารถทำได้กับเนื้อหาที่ฝังอยู่นั้นขึ้นอยู่กับปลั๊กอินของเบราว์เซอร์ที่เป็นปัญหา แต่สำหรับ SVG คุณสามารถเข้าถึงเอกสาร SVG แบบฝังจากผู้ปกครองด้วยสิ่งต่อไปนี้:
svg = document.getElementById("parent_id").getSVGDocument();
จากภายใน SVG หรือเอกสาร HTML แบบฝังคุณสามารถเข้าถึงผู้ปกครองด้วย:
parent = window.parent.document;
สำหรับ HTML แบบฝังไม่มีวิธีที่จะได้รับเอกสารฝังตัวจากผู้ปกครอง (ที่ฉันได้พบ)
<object>
<object>
องค์ประกอบสามารถเป็นตัวแทนของทรัพยากรภายนอกซึ่งขึ้นอยู่กับชนิดของทรัพยากรที่จะได้รับการปฏิบัติอย่างใดอย่างหนึ่งเป็นภาพการเป็นบริบทการท่องเว็บที่ซ้อนกันหรือเป็นทรัพยากรภายนอกที่จะประมวลผลโดยปลั๊กอิน ( มาตรฐาน HTML 5 - " <object>
องค์ประกอบ" )
ข้อสรุป
หากคุณไม่ได้ฝัง SVG หรือสิ่งที่คงที่คุณน่าจะใช้งาน<iframe>
ได้ดีที่สุด หากต้องการรวมการใช้ SVG <embed>
(ถ้าฉันจำได้อย่างถูกต้อง<object>
จะไม่ให้สคริปต์ของคุณ†) จริงๆแล้วฉันไม่รู้ว่าทำไมคุณถึงใช้<object>
เว้นแต่เบราว์เซอร์รุ่นเก่าหรือแฟลช (ที่ฉันไม่ได้ทำงานด้วย)
†ตามที่ระบุไว้ในความคิดเห็นด้านล่าง; สคริปต์ใน<object>
จะทำงาน แต่บริบทหลักและลูกไม่สามารถสื่อสารโดยตรงได้ ด้วย<embed>
คุณสามารถรับบริบทของเด็กจากผู้ปกครองและในทางกลับกัน ซึ่งหมายความว่าพวกเขาคุณสามารถใช้สคริปต์ในผู้ปกครองในการจัดการ ฯลฯ เด็กที่ส่วนหนึ่งเป็นไปไม่ได้ที่มี<object>
หรือ<iframe>
ที่คุณจะต้องมีการตั้งค่าบางกลไกอื่น ๆ แทนเช่นจาวาสคริปต์ postMessage API