Как установить высоту iframe, указывающего на Orbeon Forms, чтобы она соответствовала высоте, если его содержимое

У меня есть форма, созданная с помощью Form Builder. Я показываю форму в iframe. Как я могу рассчитать высоту формы, чтобы я мог передать ее iframe и, как результат, не иметь вертикальной полосы прокрутки на iframe, а только в главном окне.

Я попытался вызвать этот метод в событии onload iframe:

function setSize() {
    var iFrame = document.getElementById("myIframe");
    if (iFrame.contentDocument) {
      //FF 3.0.11, Opera 9.63, and Chrome
      iFrame.height = iFrame.contentDocument.documentElement.scrollHeight + 30; 
    } else {
      //IE6, IE7 and Chrome
      iFrame.height = iFrame.contentWindow.document.body.scrollHeight + 30;
    }
}

Но это не работает, потому что содержимое iframe еще не готово (если я вызываю метод при нажатии кнопки, все работает нормально). Это еще один способ добиться этого? Это событие, когда форма полностью инициализирована?


person Faton    schedule 28.11.2011    source источник


Ответы (1)


Ответ на этот вопрос не должен зависеть от конкретной технологии, используемой для создания контента, если iframe (в вашем случае Orbeon Forms). Поэтому я бы отослал вас к этот другой вопрос и, в частности, этот ответ, в котором используется jQuery.

person avernet    schedule 28.11.2011
comment
Спасибо за ответ, у меня это сработало отлично: $('myIframe').load(function() { this.style.height = this.contentWindow.document.body.offsetHeight + 30 + 'px'; }); - person Faton; 29.11.2011
comment
Отлично, я рад, что это помогло. И заслуга должна быть отдана @Tom, который предоставил ответ, используя jQuery в той другой теме. Не могли бы вы пометить этот вопрос как ответ, нажав на «v» слева от ответа выше? - person avernet; 29.11.2011