Javascript iframe是否可以在没有主窗口帮助的情况下自行调整大小?

Javascript iframe是否可以在没有主窗口帮助的情况下自行调整大小?,javascript,iframe,resize,no-framework,Javascript,Iframe,Resize,No Framework,主窗口和iframe都在同一个域中,但我想要实现的是,仅在该iframe中使用js调整iframe的大小以适应其内容 我也不知道主窗口分配给它的iframe的id。而且我不想使用jquery或任何其他框架。对于像您一样的同源内容 借用Gary对上述问题的回答: 在iframe中,window.parent引用父对象的全局对象 文档,而不是文档对象本身。我相信你需要 使用parent.document.getElementById 尝试使用parent.document访问iframe,看看这是否

主窗口和iframe都在同一个域中,但我想要实现的是,仅在该iframe中使用js调整iframe的大小以适应其内容


我也不知道主窗口分配给它的iframe的id。而且我不想使用jquery或任何其他框架。

对于像您一样的同源内容

借用Gary对上述问题的回答:

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


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

您也可以在不知道父窗口中
iframe
id
的情况下执行此操作:

window.frameElement.style.width = iframeContentWidth + 'px';
window.frameElement.style.height = iframeContentHeight + 'px';
请参见处的
frameElement

编辑

为了防止
iframe
恰好位于大小固定且
溢出:隐藏的容器元素中,您可以执行以下操作:

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;
}

假设主窗口中只有1个IFRAME,则可以从IFRAME文档的Javascript执行以下操作:

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

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