Pertanyaan yang tepat adalah bagaimana melakukannya dengan JavaScript murni bukan dengan jQuery.
Tapi saya selalu menggunakan solusi yang dapat ditemukan dalam kode sumber jQuery. Itu hanya satu baris JavaScript asli.
Bagi saya itu yang terbaik, mudah dibaca dan bahkan afaik cara terpendek untuk mendapatkan konten iframe.
Pertama, dapatkan iframe Anda
var iframe = document.getElementById('id_description_iframe');
// or
var iframe = document.querySelector('#id_description_iframe');
Dan kemudian gunakan solusi jQuery
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
Ia bekerja bahkan di Internet Explorer yang melakukan trik ini selama contentWindow
properti iframe
objek. Sebagian besar browser lain menggunakan contentDocument
properti dan itulah alasan mengapa kami membuktikan properti ini terlebih dahulu dalam kondisi ATAU ini. Jika tidak diatur coba contentWindow.document
.
Pilih elemen dalam iframe
Maka Anda biasanya dapat menggunakan getElementById()
atau bahkan querySelectorAll()
untuk memilih DOM-Element dari iframeDocument
:
if (!iframeDocument) {
throw "iframe couldn't be found in DOM.";
}
var iframeContent = iframeDocument.getElementById('frameBody');
// or
var iframeContent = iframeDocument.querySelectorAll('#frameBody');
Fungsi panggilan di iframe
Dapatkan window
elemen dari iframe
untuk memanggil beberapa fungsi global, variabel, atau seluruh perpustakaan (mis. jQuery
):
var iframeWindow = iframe.contentWindow;
// you can even call jQuery or other frameworks
// if it is loaded inside the iframe
iframeContent = iframeWindow.jQuery('#frameBody');
// or
iframeContent = iframeWindow.$('#frameBody');
// or even use any other global variable
iframeWindow.myVar = window.myVar;
// or call a global function
var myVar = iframeWindow.myFunction(param1 /*, ... */);
Catatan
Semua ini dimungkinkan jika Anda memperhatikan kebijakan asal-sama .