Я использовал функцию изменения размера javascript, которую нашел в stackoverflow, и она прекрасно работает с IE и FF. Однако в Google Chrome он может изменять размер только тех фреймов, которые больше предыдущего. Если ему нужно изменить размер меньшего фрейма, он берет ту же высоту и добавляет 30px.
Я предполагаю, что это как-то связано с получением scrollHeight, но я не знаю, как это исправить.
Я уже пытался использовать тайм-аут, потому что я где-то читал, что может помочь, но это не так.
Вот соответствующий код:
function autoResize(id){
var newheight;
if(document.getElementById)
{
newheight=document.getElementById(id).contentWindow.document.body.scrollHeight;
newheight=newheight+30;
}
document.getElementById(id).height = (newheight) + "px";
}
<iframe src="<?php echo "$LC"; ?>/home.html" name="iframe" id="iframe" width="435px" height="10px" scrolling="no" frameborder="0" style="margin-left:-10px;padding-bottom:20px;" onLoad="setTimeout(autoResize('iframe'),250);";">
Редактировать: решил, изменив функцию на
function autoResize(id) {
document.getElementById(id).height = document.getElementById(id).contentDocument.documentElement.scrollHeight+15; //Chrome
document.getElementById(id).height = document.getElementById(id).contentWindow.document.body.scrollHeight+15; //FF, IE
}