在IE8中调整jQuery iframe的问题

时间:2011-01-26 08:19:12

标签: javascript jquery internet-explorer iframe

我正在使用此代码段动态调整页面中iframe(同一个域)的大小:

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

适用于Chrome,FF和Safari,但不适用于IE8。任何想法为什么它不起作用?

感谢。

编辑:应该提到我从iframe onload事件调用此函数。

1 个答案:

答案 0 :(得分: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); 

让我知道这是否有帮助......我(我们都知道)有一些真正的问题。如果可以使用它,.css将有所帮助。您可能需要使用CSS以及outerWidth(true)vs()。