PDA

View Full Version : سوال: تغییر ارتفاعiframe به اندازه ی فایل src دز زمان اجرا



h.alizadeh
پنج شنبه 14 مرداد 1389, 00:40 صبح
سلام،

من در صفحه ام از iframe استفاده کردم.
باتوجه به اینکه فایلsrc من حجمش یعنی ارتفاعش در زمان اجرا تغییر میکنه میخواستم بدونم ایا راهی هست که من بدون اینکه iframe اسکورل بندازه ارتفاعش زیاد بشه؟

چون اصلا تمایلی ندارم در صفحه ام مشخص باشه که من از iframe استفاده کردم.

ممنون

mehdi.mousavi
پنج شنبه 14 مرداد 1389, 00:56 صبح
سلام، من در صفحه ام از iframe استفاده کردم. باتوجه به اینکه فایلsrc من حجمش یعنی ارتفاعش در زمان اجرا تغییر میکنه میخواستم بدونم ایا راهی هست که من بدون اینکه iframe اسکورل بندازه ارتفاعش زیاد بشه؟ چون اصلا تمایلی ندارم در صفحه ام مشخص باشه که من از iframe استفاده کردم. ممنون

سلام.
شما می تونید برای iframe خودتون متود onload تعریف کنید (که وقتی فراخوانی میشه که iframe مربوطه load شده باشه)، سپس در Handler مربوطه و توسط JavaScript، ارتفاع iframe رو بر اساس ارتفاع محتویات iframe به هنگام کنید:

this.style.height = this.contentWindow.document.body.offsetHeight;

ضمنا، این دو attribute رو برای iframe خودتون نیز set کنید:

frameborder=0 border=0

موفق باشید.

h.alizadeh
جمعه 15 مرداد 1389, 16:36 عصر
ممنونم اقای موسوی،
راستش من این کد شما رو اینجوری نوشتم:

<script language="javascript">
function loadifram()
{
this.style.height = this.contentWindow.document.body.offsetHeight;
}
</script>

و

<iframe src="frmprojefileuploaders.php" height="250" frameborder=0 border=0 onload="loadifram();" width="800"></iframe>
ولی کار نکرد اینجوری.
میشه بگید چطوری به کار ببرم؟

h.alizadeh
یک شنبه 17 مرداد 1389, 01:51 صبح
من مشکلمو با این کد رفع کردم:

<script language="javascript">
function reSize()
{
try{
var oBody = ifrm.document.body;
var oFrame = document.all("ifrm");

oFrame.style.height = oBody.scrollHeight + (oBody.offsetHeight - oBody.clientHeight);
oFrame.style.width = oBody.scrollWidth + (oBody.offsetWidth - oBody.clientWidth);
}
//An error is raised if the IFrame domain != its container's domain
catch(e)
{
window.status = 'Error: ' + e.number + '; ' + e.description;
}
}
</script>


<iframe onresize=reSize() id=ifrm src="form.php" onload=reSize()>

فقط یک مشکلی که هست برای ارتفاع صحیح عمل میکنه ولی برای عرض iframeنه میگیره فشرده میکنه! اسکورل نمیندازه ولی عرض رو فشرده میکنه.