在IE中页面更改时,iframe自动高度不起作用

时间:2010-04-14 11:12:45

标签: javascript internet-explorer iframe

我在页面中有一个iframe,并带有以下自动高度脚本。

function autoHeight(e)
{
    if ( e.contentDocument ) {
        e.height = e.contentDocument.body.offsetHeight + 35;
    }
    else {
        e.height = e.contentWindow.document.body.scrollHeight + 35;
    }
}

document.domain = "example.co.uk";
var ifr = document.getElementById('housingdata');

ifr.onload = function() {
    autoHeight(ifr);
}

加载外页时,iframe会调整大小,但是当我转到iframe中的新页面时,会出现滚动条,并且不会在Internet Explorer中调整页面大小。在其他浏览器中,iframe会调整大小,因为onload事件每次都会触发。

我正在使用IE8,但外页将其设置为IE7兼容模式。是否有针对IE的解决方法?

2 个答案:

答案 0 :(得分:1)

我发现了一种不同的实现方式。我删除了上面的脚本并将下面的脚本(使用autoHeight函数)放在iframe页面上:

window.onload = function() {
    var ifr = window.parent.document.getElementById('housingdata');
    autoHeight(ifr);
}

现在,每次加载页面时,都会调整iframe的大小。

答案 1 :(得分:0)

你有没有尝试将onload="autoHeight(this)"直接写入你的iframe - 标签(这很难看,但也许有帮助......很久以前我想做同样的尝试,我做了这样)?如果这没有帮助,我会在家里搜索我的旧剧本...不记得我做了什么不同