نظرًا لأنه يمكن دمج إطار iframe بدون حدود بسلاسة مع صفحة الويب، فمن الممكن تحديث بعض بيانات الصفحة دون تحديث الصفحة، ومع ذلك، فإن حجم إطار iframe ليس "قابلًا للتحجيم" مثل الطبقة، لذا فهو يسبب مشاكل مشكلة قيد الاستخدام، الكثير ليس جيدًا عند ضبط ارتفاع iframe، والأقل هو الأسوأ الآن، دعني أخبرك بطريقة لضبط ارتفاع iframe ديناميكيًا، خاصة وظيفة JS التالية:
رمز البرنامج
الدالة SetWinHeight(obj)
{
var win=obj;
إذا (document.getElementById)
{
إذا (فوز && !window.opera)
{
إذا (win.contentDocument && win.contentDocument.body.offsetHeight)
win.height = win.contentDocument.body.offsetHeight;
وإلا إذا (win.Document && win.Document.body.scrollHeight)
win.height = win.Document.body.scrollHeight;
}
}
}
أخيرًا، عند إضافة إطار iframe، لا يمكنك فقدان سمة التحميل. بالطبع، يجب أن يتطابق المعرف أيضًا مع الفوز في الوظيفة.
رمز البرنامج
<iframe width = "778" align = "center" height = "200" id = "win" name = "win" onload = "Javascript:SetWinHeight (this)"frameborder = "0" التمرير = "no"> ></ إطار iframe>
حل iframe لموقف آخر (بسيط للغاية)
ملاحظة مهمة: يجب أن يكون عنوان صفحة الويب الذي يجب عليك ملؤه في src= موجودًا على نفس موقع هذه الصفحة، وإلا فسيحدث خطأ ويقول "تم رفض الوصول!" (في الواقع، هذا بسبب مشكلة عبر النطاقات). Js الذي يؤدي إلى رفض الوصول)
لقد واجهت هذه المشكلة من قبل، لقد بحثت عبر الإنترنت للحصول على الإجابة ووجدت أن العديد من الأشخاص واجهوا هذه المشكلة أيضًا.
1. أنشئ ملف Bottom.js وأدخل الكود التالي (سطرين فقط)
parent.document.all("اسم معرف الإطار").style.height=document.body.scrollHeight;
parent.document.all("اسم معرف الإطار").style.width=document.body.scrollWidth;
اسم معرف الإطار هنا هو معرف Iframe، على سبيل المثال:
<IFRAME id = "اسم معرف الإطار" الاسم = "يسار" إطار الحدود = 0 تمرير = لا يوجد src = "XXX.asp" العرض = "100٪"></IFRAME>
2. أضف كل الملفات المضمنة في موقع الويب الخاص بك
<لغة البرنامج النصي = "JavaScript" src = "bottom.js"/></script>
3. حسنًا، انتهى الأمر!
اجتاز الاختبار تحت WINXP وIE6. انها بسيطة جدا!
تنفيذ الارتفاع التكيفي لـ iframe
أدرك الارتفاع التكيفي لإطار iframe، والذي يمكن أن يتكيف تلقائيًا مع طول الصفحة لتجنب ظاهرة ظهور أشرطة التمرير على الصفحة وiframe في نفس الوقت.
رمز البرنامج
<نوع البرنامج النصي = "نص/جافا سكريبت">
//** يتكيف إطار iframe تلقائيًا مع الصفحة**//
// أدخل قائمة بأسماء إطارات iframe التي تريد ضبط ارتفاعها تلقائيًا بناءً على ارتفاع الصفحة
// افصل معرف كل إطار iframe بفاصلة، على سبيل المثال: ["myframe1"، "myframe2"]، يمكن أن يكون هناك نموذج واحد فقط، لذلك ليست هناك حاجة إلى فاصلة.
// تحديد معرف iframe
فار iframeids=["test"]
// إذا كان متصفح المستخدم لا يدعم iframe، سواء كان إخفاء iframe، فإن نعم تعني مخفيًا، ولا تعني غير مخفي.
فار iframehide = "نعم"
الدالة dyniframesize()
{
فار dyniframe=مصفوفة جديدة ()
لـ (i=0; i<iframeids.length; i++)
{
إذا (document.getElementById)
{
// ضبط ارتفاع iframe تلقائيًا
dyniframe[dyniframe.length] = document.getElementById(iframeids);
إذا (dyniframe && !window.opera)
{
dyniframe.style.display = "block"
if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) // إذا كان متصفح المستخدم هو NetScape
dyniframe.height = dyniframe.contentDocument.body.offsetHeight;
else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) // إذا كان متصفح المستخدم هو IE
dyniframe.height = dyniframe.Document.body.scrollHeight;
}
}
// وفقًا للمعلمات المحددة، قم بمعالجة مشاكل العرض للمتصفحات التي لا تدعم iframe
إذا ((document.all || document.getElementById) && iframehide=="no")
{
فار tempobj=document.all document.all[iframeids] : document.getElementById(iframeids)
tempobj.style.display = "block"
}
}
}
إذا (window.addEventListener)
window.addEventListener("تحميل"، dyniframesize، false)
وإلا إذا (window.attachEvent)
window.attachEvent("onload"، dyniframesize)
آخر
window.onload=dyniframesize
</script>
تعقيب: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1608312