Karena iframe tanpa batas dapat diintegrasikan secara mulus dengan halaman web, beberapa data halaman dapat diperbarui tanpa menyegarkan halaman. Namun, ukuran iframe tidak "dapat diskalakan" seperti lapisannya, sehingga menimbulkan masalah dalam penggunaan. Masalah, terlalu banyak tidak baik saat mengatur ketinggian iframe, dan lebih sedikit lebih buruk. Sekarang, izinkan saya memberi tahu Anda cara menyesuaikan ketinggian iframe secara dinamis, terutama fungsi JS berikut:
kode program
fungsi SetWinHeight(obj)
{
var menang=obj;
jika (dokumen.getElementById)
{
jika (menang && !window.opera)
{
jika (win.contentDocument && win.contentDocument.body.offsetHeight)
win.height = win.contentDocument.body.offsetHeight;
else if(menang.Dokumen && menang.Dokumen.tubuh.scrollHeight)
win.height = win.Document.body.scrollHeight;
}
}
}
Terakhir, saat menambahkan iframe, Anda tidak boleh kehilangan atribut onload, tentu saja, id juga harus sesuai dengan win dalam fungsi tersebut.
kode program
<iframe width="778" align="center" height="200" id="win" name="win" onload="Javascript:SetWinHeight(this)" frameborder="0" scrolling="no"></ iframe>
solusi iframe untuk situasi lain (sangat sederhana)
Catatan penting: Alamat halaman web yang harus Anda isi src= harus berada di situs yang sama dengan halaman ini, jika tidak, akan terjadi kesalahan dan mengatakan "Akses Ditolak!" (Sebenarnya ini karena masalah lintas domain Js yang mengarah pada penolakan akses.
Saya pernah mengalami masalah ini sebelumnya. Saya mencari secara online untuk mendapatkan jawabannya dan menemukan bahwa banyak orang juga mengalami masalah ini.
1. Buat file bottom.js dan masukkan kode berikut (hanya dua baris)
parent.document.all("nama ID bingkai").style.height=document.body.scrollHeight;
parent.document.all("Nama ID Bingkai").style.width=document.body.scrollWidth;
Nama ID frame disini adalah ID dari Iframe, contoh:
<IFRAME id="nama ID bingkai" name="kiri" frameBorder=0 bergulir=no src="XXX.asp" width="100%"></IFRAME>
2. Tambahkan setiap file yang disertakan di situs web Anda
<bahasa skrip = "JavaScript" src = "bottom.js"/></script>
3. Oke, akhiri saja!
Lulus tes di bawah WINXP dan IE6. Ini sangat sederhana!
Menerapkan ketinggian adaptif iframe
Sadarilah ketinggian adaptif iframe, yang secara otomatis dapat beradaptasi dengan panjang halaman untuk menghindari fenomena scroll bar yang muncul pada halaman dan iframe secara bersamaan.
kode program
<skrip tipe="teks/javascript">
//** iframe secara otomatis beradaptasi dengan halaman**//
//Masukkan daftar nama iframe yang ingin Anda sesuaikan tingginya secara otomatis berdasarkan tinggi halaman
//Pisahkan ID setiap iframe dengan koma. Misalnya: ["myframe1", "myframe2"], hanya boleh ada satu form, jadi tidak perlu koma.
//Tentukan ID iframe
var iframeids=["uji"]
//Jika browser pengguna tidak mendukung iframe, apakah akan menyembunyikan iframe, ya berarti tersembunyi, tidak berarti tidak disembunyikan.
var iframehide="ya"
fungsi ukuran dyniframe()
{
var dyniframe=Array baru()
untuk (i=0; i<iframeids.length; i++)
{
jika (dokumen.getElementById)
{
//Secara otomatis menyesuaikan ketinggian iframe
dyniframe[dyniframe.length] = document.getElementById(iframeids);
jika (dyniframe && !window.opera)
{
dyniframe.style.display="blok"
if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) //Jika browser pengguna adalah NetScape
dyniframe.height = dyniframe.contentDocument.body.offsetHeight;
else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) //Jika browser pengguna adalah IE
dyniframe.height = dyniframe.Document.body.scrollHeight;
}
}
//Menurut parameter yang ditetapkan, tangani masalah tampilan browser yang tidak mendukung iframe
if ((document.all || document.getElementById) && iframehide=="no")
{
var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids)
tempobj.style.display="blok"
}
}
}
if (jendela.addEventListener)
window.addEventListener("memuat", ukuran dyniframe, salah)
else if (window.attachEvent)
window.attachEvent("onload", ukuran dyniframe)
kalau tidak
window.onload=dyniframesize
</skrip>
Pelacakan balik: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1608312