2011-01-26 44 views
3

調整我使用這個代碼片段來動態調整在頁面中的iframe(同一域):問題與jQuery的iframe在IE8

function setHeight() { 
     $("#myframe").height($("#myframe").contents().find("html").height()); 
    } 

它工作在Chrome,FF和Safari瀏覽器,而不是在IE8。任何想法,爲什麼它不工作?

謝謝。

編輯:應該提到,我從iframe onload事件調用此函數。

+0

你可以把你的代碼放在http://jsfiddle.net/? – sunn0 2011-01-26 08:37:42

回答

0

我這樣做在jsfiddle.net所以這裏是一個鏈接,如果你想測試一下: http://jsfiddle.net/4LQFc/5/

這裏的破敗:

這是你的HTML:

<!DOCTYPE html> 
<html> 
<body> 
    <div id="div_loaded">loaded div</div> 
    <p id="get_dimentions"></p> 
    <iframe src="" id="iframetosize"></iframe> 
</body> 
</html>​ 

一些可選的CSS ...用於演示目的:

p { 
      margin:10px; 
      padding:5px; 
      border:2px solid #666; 
} 
#div_loaded { 
      position:relative; 
      display:block; 
      margin:10px; 
      padding:5px; 
      border:2px solid #666; 
      height:30%; 
      width:30%; 
} 
#iframetosize { 
      margin:10px; 
      padding:5px; 
      background-color:#000; 
      color:#fff; 
}​ 

釷是是jQuery的(醜,但工程):

var getsize = $("#div_loaded"); 
$("#get_dimentions").text("Width: " + getsize.outerWidth() + " , Height: " + getsize.outerWidth(true)); 
var sizewidth = getsize.outerWidth(); 
var sizeheight = getsize.outerHeight(); 
$("#iframetosize").css('height',sizeheight); 
$("#iframetosize").css('width',sizewidth); 

讓我知道這helps..IE有(大家都知道)的一些實際問題。如果可以使用它,.css將會有所幫助。您可能必須使用CSS以及outerWidth(true)vs()。