有没有可能iframe中调整自身,而不从主窗口帮助?(is it possible that ifr

2019-06-26 17:55发布

两个主窗口和iframe在同一域中,但我想实现的是调整的iframe仅在该iframe使用JS来适应其内容。

我也不知道是由主窗口中分配给它的iframe的ID。 我不想使用jquery或任何其他框架。

Answer 1:

你可以这样做也是不知道的id中的iframe父窗口:

window.frameElement.style.width = iframeContentWidth + 'px';
window.frameElement.style.height = iframeContentHeight + 'px';

frameElement在MDN 。

编辑

以防万一iframe恰好是在具有固定的大小和容器元素overflow: hidden ,你可以这样做:

function resizeIframe (iframeContentWidth, iframeContentHeight) {
    var container = window.frameElement.parentElement;
    if (container != parent.document.body) {
        container.style.width = iframeContentWidth + 'px';
        container.style.height = iframeContentHeight + 'px';
    }
    window.frameElement.style.width = iframeContentWidth + 'px';
    window.frameElement.style.height = iframeContentHeight + 'px';
    return;
}


Answer 2:

对于相同来源的内容,如你的, 是的,你可以 。

为了从加里对上述问题的答案借:

在iframe,window.parent指父文件的全局对象,而不是文档对象本身。 我相信你会需要使用parent.document.getElementById

尝试使用parent.document访问的iframe,看看是否能解决您的问题。



Answer 3:

假设你在主窗口中只有1个IFRAME,从IFRAME的文档,你可以这样做的JavaScript的:

function getMySelf()
{
    return (window.parent.document.getElementsByTagName("iframe"))[0];
}

var myself = getMySelf();
myself.style.width = whateverWidth;
myself.style.height = whateverHeight;


文章来源: is it possible that iframe resize itself without help from main window?