列中的IFRAME调整大小(HTML)

时间:2012-03-27 15:40:58

标签: html iframe html-table

我该如何做到这一点?

我在列(html表)中有一个iframe,但是我想让td和iframe中的doc一样高。

有可能吗?

3 个答案:

答案 0 :(得分:2)

这是答案(在JQuery中)。

在jQuery中:

$("#myIframe").on("load", function ()
{
    $(this).parent("td:first").css('width', $(this).css('width')).css('height', $(this).css('height'))
});

答案 1 :(得分:0)

您需要使用Javascript计算内容的高度。

你可以在这里看到一个有效的例子: http://th.atguy.com/mycode/iframe_size/

答案 2 :(得分:0)

我在2个项目中使用这段代码,它对我来说没问题。我不知道是否有更好的方法来实现这一点(请注意,此代码具有setInterval,它将每1秒检查iframe的内容高度并更新其高度)。它也使用jQuery。

let iframe = document.getElementById('your_iframe_id'),
    current_height = 0,
    iframe_content = $(iframe).contents().find('body');

setInterval(() => {
    let new_height = iframe.contents().find('body').height();
    current_height = new_frame_height(current_height, new_height);
    iframe.css({ height: current_height });
}, 1000)

function new_frame_height(last_height, height) {
    if(height != last_height + 60) {
        last_height = height;
    }
    return last_height + 60
}

顺便说一句,我认为这只有在iframe与父级在同一个域下时才有效。 如果不是,则浏览器中的跨源块将不允许父级读取子级内容。