Написать письмо   
 
logo
 
Snippy
Сборник
примеров кода
Функция для подгонки высоты iframe по содержимому. Вся проблема в том, что в разных браузерах нужно использовать разные свойства для определения высоты документа.

Работает в IE 6, IE 7, Opera 9, FF 2


arty [Добавлено 25.08.2008 05:39:24]
function aa()
{
window.document.all.blockrandom.height="100%";
}
<iframe id="blockrandom" name="iframe" src="2.htm" width="100%" scrolling="auto" align="top" frameborder="0" onLoad="aa();">
Не любит когда находится в DIVе , и когда объявление страницы проходит как xml. Выявлено опытным путем

Васса [Добавлено 18.11.2008 13:30:56]
В Опере 9.62 не работает

bastion [Добавлено 08.04.2009 15:40:29]
да да тото и ОНО!!! не работает в Опере чорт побери

саоме лучшее что я нашел это

<script>
function fr()
{
if (document.getElementsByName('cnt')[0])
{
Ctrl = document.getElementsByName('cnt')[0];
Ctrl.style.height = Ctrl.contentWindow.document.body.scrollHeight;
}
}
</script>

<iframe onload="fr();" id=cnt name=cnt src="start.html" width="680" height="100%" scrolling=no
cellSpacing=0 cellPadding=0 border=0 FRAMESPACING=0 FRAMEBORDER=0></iframe>

Сашка [Добавлено 22.04.2009 17:48:12]
<iframe onload="this.height=this.contentWindow.document.body.scrollHeight;" ...
в опере, лисе и осле прекрасно работает

paragraff [Добавлено 30.10.2009 14:54:46]
У меня не работает, во всех бровзерах
this.contentWindow.document.body.scrollHeight = 0
this.contentDocument.document.body.scrollHeight = 0

Анонимно [Добавлено 20.12.2009 10:39:10]
Загружаемые документы имеют значительно отличающуюся высоту

<head>
<script language='javascript'>
function resize_iframe(){
$('sizeframe').height=0;//без этих строк
alert('555'); // функция криво работает (доказано опытным путем)
$('sizeframe').height=window.frames["sizeframe"].document.body.scrollHeight;
}
function $(id) {
return document.getElementById(id);
}
</script>
</head>
<body>
<iframe width=700 height=100 id="sizeframe" name="sizeframe" src="info.html" scrolling="no" frameborder="yes" ></iframe>
<input type='button' value= 'button1' onclick='$("sizeframe").src="sostav.html"; resize_iframe();'>
<input type='button' value= 'button2' onclick='$("sizeframe").src="info.html"; resize_iframe();'>
<input type='button' value= 'button3' onclick='$("sizeframe").src="fakt1.html"; resize_iframe();'>
</body>

Смурной тушкан [Добавлено 09.06.2010 18:59:04]
У оперы минус в том что она забывает обнулить значения параметров фрейма. Я лечил так - содержимое фрейма заключал наглухо в таблицу из одной строки и одного столбца. Причем для столбца и строки задавал значения ширины и высоты соответственно чтобы фрейм не мог быть меньше этих размеров нуникак.

При onLoad соответственно window.parent.document.getElementById("idrameId").height уравнивал на высоту ТАБЛИЦЫ, и чутьчуть увеличивал.

function LoadAction() {
window.parent.document.getElementById("FRAME").height = document.getElementById("svt").offsetHeight+20+'px';
}
onload = LoadAction;
<table cellpadding="0" cellspacing="0" width="98%" id="svt" name="svt">
<tr HEIGHT="300"><td>
---содержимое фрейма---
</td></tr></table>



Ваше имя
Ваш E-mail
(если хотите отслеживать комментарии)
Дoкажи, что ты не робот
Текст комментария