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

rsk*_*k82 11 javascript iframe resize no-framework

主窗口和iframe都位于同一个域中,但我想要实现的是调整iframe以仅在iframe中使用js来调整其内容.

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

Tee*_*emu 12

你可以这样做也是不知道idiframe父窗口:

window.frameElement.style.width = iframeContentWidth + 'px';
window.frameElement.style.height = iframeContentHeight + 'px';
Run Code Online (Sandbox Code Playgroud)

frameElementMDN.

编辑

以防万一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;
}
Run Code Online (Sandbox Code Playgroud)