内容小于默认大小(300x150)时iframe调整大小

时间:2015-09-30 14:07:31

标签: javascript html css iframe

在我目前的情况下,我有一个加载iframe的页面。 iframe的内容无法事先确定,因此我需要使用javascript动态调整大小。我用来完成此任务的代码如下:

newIframe.onload = function() {
    var cw = newIframe.contentWindow;
    var doc = cw.document;
    var body = doc.body,
        html = doc.documentElement;

    var height = Math.max(body.scrollHeight, body.offsetHeight,
        html.clientHeight, html.scrollHeight, html.offsetHeight);

    var width = Math.max(body.scrollWidth, body.offsetWidth,
        html.clientWidth, html.scrollWidth, html.offsetWidth);

    newIframe.style.width = width + "px";
    newIframe.style.height = height + "px";
}

除非iframe的内容小于width = 300或height = 150,否则一切都按预期工作。在这种情况下(例如,iframe只包含图像w:160和h:600),计算出的宽度是错误的。

1 个答案:

答案 0 :(得分:0)

通过将iframe的初始宽度和高度设置为0,问题就消失了,因为这些值将用作默认值。