2016-08-15 87 views
0

我試圖根據iFrame內的大小更改iFrame的大小,挑戰來自用戶在iFrame內開始單擊時檢查我使用的間隔iFrame來檢查內容的大小,像這樣jQuery檢查iFrame高度並調整

var checkHeight = setInterval(function(){ 
checkHeight(); 
},1000); 

function checkHeight() { 
    var height = $('.foo').contents().height(); 
    console.log(height) 
    $('.foo').css({ 
    'height': height + 'px' 
    }); 
} 

這是好的,當用戶進入一個頁面,內容爲600像素,所述iFrame設置爲600像素,但是當用戶然後進入到一個頁面的高度是200px,iFrame註銷並設置600px,我無法弄清楚爲什麼jQuery保存最高的高度數字?在每次函數調用時將該值設置爲零會使頁面跳動。

回答

0

我使用的是類似的東西:

$(function(){ 
    $('#foo').load(function(){ 
     $('#foo').contents().find("body").on('click', function(event) { 
      runAfterTimeout('foo'); 
     }); 
    }); 
}); 

function runAfterTimeout(id) { 
    setTimeout(function(){ 
     autoResize(id); 
    },1000); 
}; 

function autoResize(id){ 
    var newheight; 
    var newwidth; 

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

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

而且在IFRAME補充一點:的onload = 「自動調整( '富')」