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