2013-04-10 4 views
2

Я нашел такие темы, как How to dynamically resize iFrame in Firefox?, которые говорят о калибровке iframe на основе удаленного контента; однако я не нашел способ (в Firefox) установить высоту iframe на основе размера окна.Динамически определять высоту iframe на основе размера окна (НЕ СОДЕРЖАНИЕ)

Другие браузеры могут использовать .body.scrollHeight, но, похоже, Firefox не может это использовать. Смотрите ... http://jsfiddle.net/gjrowe/X63KR/

Чтобы увидеть IFRAME в действии с автоматической проклейки просмотра этой страницы ... http://jsfiddle.net/gjrowe/y2WCP/

Он работает в браузерах, таких как Chrome, но не Firefox

+0

Я знаю его старую нить, но также взгляните на http://stackoverflow.com/questions/153152/resizing-an-iframe-based-on-content, что может быть другим способом справиться с этим. – Kendrick

ответ

2

Я не знать, если вы хотите использовать JQuery, но с JQuery я думаю, что я установил вашу проблему ..

// Header is 50px and footer is 50px; therefore, 100px is of screen height is used 
// Define content_height and consider the 100px which has already been used 
var content_height=document.body.scrollHeight-100; 
//alert(content_height); 
content_height = $(window).height() -110; 
//alert(content_height); 
// Set iframe height 
document.getElementById('pdf_frame').style.height=content_height+"px"; 

// Reset iframe height after window resize 
$(function(){ 
    $(window).resize(function(){ 
     content_height = $(window).height()-110; 
     //var content_height=document.body.scrollHeight-100; 

     document.getElementById('pdf_frame').style.height=content_height+"px"; 
    }); 
}); 

jsFiddle link

3

Вот то, что я сделал, чтобы исправить кроссбраузерный ...

Я добавил эту функцию яваскрипта ...

function getDocHeight() { 
    var D = document; 
    return Math.max(
     Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), 
     Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), 
     Math.max(D.body.clientHeight, D.documentElement.clientHeight) 
    ); 
} 

Затем я изменил ...

var content_height=document.body.scrollHeight-100; 

к .. .

var content_height=getDocHeight()-100; 

Вы можете увидеть его в действии на http://jsfiddle.net/y2WCP/9/

+0

Ответ был получен от: http://james.padolsey.com/javascript/get-document-height-cross-browser/ –

+0

Так что это отлично работает. Однако, если я динамически удаляю элемент, этот метод продолжает сообщать о старой высоте. Идеи? –

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