2012-03-06 17 views
4

SO Я знаю, что это решение где-то, но я не могу его найти. Я копался около дня в google и stackOverflow.Регулировка высоты IFrame только Хром

В принципе, у меня есть iframe, и я пытаюсь его расширить до размера его содержимого, довольно простой задачи. Я прошел несколько методов, глядя на разные высоты и т. Д. Но для какой-то чертовой причины, Chrome не хочет мириться со мной. Итак, вот javascript для изменения размера IFrame. Для того, чтобы убедиться, что JS работает и читать высоту я кинул в этом innerHTML кусок (вроде отладки)

<script type="text/javascript"> 

function resizeFrame() { 
    var t=document.getElementById("Footer"); 
    var f = document.getElementById("mainContent"); 
    var y = f.contentWindow; 

    t.innerHTML = y.document.body.offsetHeight; 
    f.height = y.body.offsetHeight; 
} 

</script> 

Вот IFrame:

<iframe onload="resizeFrame()" id="mainContent" src="homec.html" scrolling=auto frameborder=0 height="100%" width="100%"> 
    Not working!</iframe> 

Так по какой-то причине, он не хочу работать, в значительной степени ненавидит меня в Chrome. Но он работает в Firefox и IE. Любые решения?

ответ

1

Если я что-то не хватает, я полагаю, у вас есть опечатка на последней строке функции (отсутствует .document.)

Следующие работы для меня в Chrome (18.0):

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
function resizeFrame() { 
    var t=document.getElementById("Footer"); 
    var f = document.getElementById("mainContent"); 
    var y = f.contentWindow; 

    t.innerHTML = y.document.body.offsetHeight; 
    f.height = y.document.body.offsetHeight; 
    } 
</script> 
</head> 
<body> 
<iframe onload="resizeFrame()" id="mainContent" src="homec.html" scrolling=auto frameborder=0 
height="100%" width="100%">Working!</iframe> 
<p id="Footer"> Footer</p> 
</body> 
</html> 
+0

I знай, что это год спустя, но это было решение. Я не знаю, почему я не ответил. Спасибо за помощь. – popnbrown