2012-04-05 79 views
2

我在与网页相同的域中有一个iframe。如何使用iframe编写可调整大小的页面?

我有,我想保持相同的高度头(我不知道它是什么,让我们说80px),而主体部分包含的iframe,当浏览器调整其大小:

----------  -------------- 
| header |  | header | 
----------  -------------- 
| iframe | -> |   | 
|  |  |   | 
|  |  | .... | 
----------  |   | 
        |   | 
        -------------- 

我使用jQuery和试图在iframe DIV height()css(),但那些不改变iframe的尺寸。 iframe保持相同,很小的默认尺寸。

如果我在iframe CSS中手动指定百分比,然后调整大小,但由于这些是百分比,iframe超出了直接页面的边界,并且在足够高的百分比值将其边框从屏幕上移开后被切断。

我需要一些方法来帮助iframe按像素计算自己的边界,以便它保持在页面的边界内。我可以抓住窗口的宽度和高度,但如前所述,应用css()height()从这些值没有更新iframe的大小。

再次:我正在与iframe在与父页面相同的域中工作。

我将如何正确代码头和iframe调整大小,从而使resize()操作(或调整浏览器窗口)的实际工作?

我已经尝试的代码是类似以下内容:

<html> 
<head> 
... // load jquery, etc. 
<script> 
function resize() { 
    var w = $('#body').width(); 
    var h = $('#body').height(); 

    $('#header').width(w + "px"); // works 
    $('#header').height("80px"); // works 

    $('#my_iframe').css("width", w + "px"); // doesn't work 
    $('#my_iframe').width(w + "px"); // doesn't work, either 

    $('#my_iframe').css("height", (h-80) + "px"); // doesn't work 
    $('#my_iframe').height((h-80) + "px"); // doesn't work, either 
} 
</script> 
</head> 

<body onresize="resize()" id="body"> 
<div id="header"><div> 
<iframe id="my_iframe" .../> 
</body> 
</html> 
+0

所以要确认,你是否在iframe标签上设置尺寸?当你说“在iframe div”时我很困惑。我的方法是监听窗口大小调整,然后在事件回调中,将iframe标记上的尺寸设置为等于主体宽度和主体高度减去标题高度。 – 2012-04-05 10:17:54

+0

您是否试图用页面顶部的'iframe'和'80px'部分填充页面?还是应该'iframe'能够调整它的父窗口? – Marcel 2012-04-05 10:19:21

回答