2013-11-19 4 views
0

У меня есть iframe, который включает в себя скрипт с несколькими страницами, и я хочу настроить высоту этого iframe автоматически в соответствии с высотой содержимого. Он работает правильно, когда я загружаю первую страницу, но когда я перехожу на другую, функция вызывается снова, но высота такая же, даже если содержание не одинаково высотно на всех страницах.Несколько страниц iframe с onload для высоты

Javascript функция:

function autoResize(id){ 
    var newheight; 

    if(document.getElementById){ 
     newheight=document.getElementById(id).contentWindow.document.body.scrollHeight; 
    } 

    document.getElementById(id).height= (newheight) + "px"; 
} 

И мой IFrame:

<iframe id="iframe" src="myScript" width="950px" onLoad="autoResize('iframe');"></iframe> 

Когда я добавляю alert(newheight) после его установить с помощью contentWindow.document.body.scrollHeight, я получаю предупреждение на каждой странице, но высота всегда одинакова ,
Есть ли другой способ получить текущую высоту содержимого iframe?

ответ

0

Вы можете попробовать эту функцию, передать iframe идентификатор для каждой на Iframe нагрузки, iframe id должен быть уникальным

function autoResize(frameId){ 
     var F = document.getElementById(frameId); 
     if(F.contentDocument) { 
      F.height = F.contentDocument.documentElement.scrollHeight; //FF 3.0.11, Opera 9.63, and Chrome 
     } else { 
      F.height = F.contentWindow.document.body.scrollHeight; //IE6, IE7 and Chrome  
     } 
    } 
+0

я получаю тот же результат. Высота первой страницы отображается правильно, но когда я меняю страницу, высота остается прежней. – oliboon

+0

Как вы меняете страницу в рамке? –

+0

На всех страницах используется один и тот же скрипт php, и единственная разница между страницами - это 'LIMIT' в SQL-запросе. – oliboon

0

Попробуйте это:

function autoResize(id){ 
    var n1=id.contentWindow.document.body.scrollHeight; 
    document.getElementById(id).style.height = n1 + 'px'; 
} 
+0

@oliboon - это изменение страницы по ссылке внутри iframe? – Zword

+0

На всех страницах используется один и тот же сценарий php, и единственная разница между страницами - это LIMIT в SQL-запросе. – oliboon

+0

По страницам, которые вы имеете в виду в iframe? – Zword

Смежные вопросы