Javascript 当iframe的内容更改时,如何调整其高度?

Javascript 当iframe的内容更改时,如何调整其高度?,javascript,iframe,Javascript,Iframe,我想在iframe的内容更改时(当有人单击iframe上的链接时)调整iframe的高度,而不进行滚动。这意味着iframe应该具有页面上所需的高度 我尝试使用函数onLoad,但它只在第一次加载iframe时起作用(不是在单击iframe内部链接时) iframe中嵌入的网站处于React状态(是否有问题?)。iframe嵌入在不同的域名中(我向Django CSP提供了授权) 你知道怎么做吗?非常感谢 <iframe src="https://www.example.com" widt

我想在iframe的内容更改时(当有人单击iframe上的链接时)调整iframe的高度,而不进行滚动。这意味着iframe应该具有页面上所需的高度

我尝试使用函数onLoad,但它只在第一次加载iframe时起作用(不是在单击iframe内部链接时)

iframe中嵌入的网站处于React状态(是否有问题?)。iframe嵌入在不同的域名中(我向Django CSP提供了授权)

你知道怎么做吗?非常感谢

<iframe src="https://www.example.com" width="100%" height="200px" id="iframe" marginheight="0" frameborder="0" onload="autoResize('iframe');" ></iframe>

<script language="JavaScript">
function autoResize(id){

    var newwidth;

    if(document.getElementById){
        newheight=document.getElementById(id).contentWindow.document .body.scrollHeight;
        newwidth=document.getElementById(id).contentWindow.document .body.scrollWidth;
    }

    document.getElementById(id).height= (newheight) + "px";
    document.getElementById(id).width= (newwidth) + "px";
}

</script>

函数自动调整大小(id){
新宽度;
if(document.getElementById){
newheight=document.getElementById(id).contentWindow.document.body.scrollHeight;
newwidth=document.getElementById(id).contentWindow.document.body.scrollWidth;
}
document.getElementById(id).height=(newheight)+“px”;
document.getElementById(id).width=(newwidth)+“px”;
}

我曾经有过类似的问题。iFrame没有自动调整高度的功能。您需要在主页(
window.onmessage
)和嵌入页面(
parent.postMessage
)之间实现高度变化的手动通信形式。
我使用的教程是,我非常满意。

谢谢你的回答,我遵循了它,但是window.onmessage总是空的。如果iframe包含在不同的域中,您确定这会起作用吗?我将iframe包含在网站my website.com中,如果两者都实现了代码(两者一起工作)。所以你必须拥有你正在嵌入的页面。默认情况下,其他网站不会告诉你。一般来说,通过postMessage进行跨域通信没有问题。