<iframe>
Elemen iframe mewakili konteks penelusuran bersarang. Standar HTML 5 - " <iframe>
Elemen"
Terutama digunakan untuk memasukkan sumber daya dari domain atau subdomain lain tetapi dapat digunakan untuk memasukkan konten dari domain yang sama juga. The <iframe>
'Kekuatan adalah bahwa kode tertanam adalah 'hidup' dan dapat berkomunikasi dengan dokumen induk.
<embed>
Dibakukan dalam HTML 5, sebelum itu adalah tag non standar, yang diakui telah diterapkan oleh semua browser utama. Perilaku sebelum HTML 5 dapat bervariasi ...
Elemen sematan menyediakan titik integrasi untuk aplikasi eksternal atau konten interaktif. ( HTML 5 standar - " <embed>
Elemen" )
Digunakan untuk menyematkan konten untuk plugin browser. Pengecualian untuk ini adalah SVG dan HTML yang ditangani secara berbeda sesuai dengan standar.
Rincian tentang apa yang bisa dan tidak bisa dilakukan dengan konten yang disematkan terserah plugin browser yang dimaksud. Tetapi untuk SVG Anda dapat mengakses dokumen SVG tertanam dari induk dengan sesuatu seperti:
svg = document.getElementById("parent_id").getSVGDocument();
Dari dalam dokumen SVG atau HTML tertanam Anda dapat menjangkau induk dengan:
parent = window.parent.document;
Untuk HTML yang disematkan tidak ada cara untuk mendapatkan dokumen yang disematkan dari induknya (yang saya temukan)
<object>
The <object>
elemen dapat mewakili sumber daya eksternal, yang, tergantung pada jenis sumber daya, baik akan diperlakukan sebagai gambar, sebagai konteks penjelajahan bersarang, atau sebagai sumber daya eksternal untuk diproses oleh sebuah plugin. ( HTML 5 standar - " <object>
Elemen" )
Kesimpulan
Kecuali Anda menanamkan SVG atau sesuatu yang statis, Anda mungkin lebih baik menggunakannya <iframe>
. Untuk memasukkan penggunaan SVG <embed>
(jika saya ingat dengan benar <object>
tidak akan membiarkan Anda skrip †). Jujur saya tidak tahu mengapa Anda akan menggunakan <object>
kecuali untuk browser atau flash yang lebih lama (yang saya tidak bekerja dengan).
† Seperti yang ditunjukkan dalam komentar di bawah ini; skrip dalam <object>
akan berjalan tetapi konteks orang tua dan anak tidak dapat berkomunikasi secara langsung. Dengan <embed>
Anda bisa mendapatkan konteks anak dari orang tua dan sebaliknya. Ini artinya mereka dapat Anda gunakan skrip di induk untuk memanipulasi anak dll. Bagian itu tidak mungkin dengan <object>
atau di <iframe>
mana Anda harus mengatur beberapa mekanisme lain, seperti JavaScript postMessage API .