2011-01-26 73 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()。