如何设置Iframe自适应高度

如何设置Iframe自适应高度,第1张

function resizeCrossDomainIframe(id, other_domain) { var iframe = documentgetElementById(id); windowaddEventListener('message', function(event) { if (eventorigin !== other_domain) return; // only accept messages from the sp

用javascript控制自适应高度,希望能帮到你。<script type="text/javascript"> function SetCwinHeight(){ var iframeid=documentgetElementById("iframeid"); //iframe id if (documentgetElementById){ if (iframeid && !windowopera){ if (iframeidcontentDocument && iframeidcontentDocumentbodyoffsetHeight){ iframeidheight = iframeidcontentDocumentbodyoffsetHeight; }else if(iframeidDocument && iframeidDocumentbodyscrollHeight){ iframeidheight = iframeidDocumentbodyscrollHeight; } } } } </script> <iframe width="100%" id="iframeid" onload="Javascript:SetCwinHeight()" height="1" frameborder="0" src="kimiphp"></iframe>

并不是里页面高度自适是,而是外面的iframe高度自适应你引入的页面的高度。思路是js控制iframe自适应高度,因为iframe本身并不能自适应高度,只有写死高度才行,所以要用js判断整个页面内容的高度。
给你的代码:
<iframe allowtransparency="true" src="你要入引的页面htm" id="defaulIframePage" name="defaulIframePage" frameborder="0" scrolling="no" width="100%" onload="defaulIframePageHeight()">

</iframe>
js部分:
function defaulIframePageHeight()

{
var ifm = documentgetElementById("defaulIframePage");
var subWeb = documentframes documentframes["defaulIframePage"]document : ifmcontentDocument;
if (ifm != null && subWeb != null)

{
ifmheight = subWebbodyscrollHeight;
}
}

在主页面iframe的onload事件中执行JS,去取得被包含页的高度内容,然后去同步高度。
在代码维护角度考虑,方法二是优于方法一的,因为方法一,每个被包含页都要去引入一段相同的代码来做这个事情,创建了好多副本。
如果只考虑FX和IE,并且,iframe里面内容也不进行DOM *** 作,那仍然可以用最简单最方便的传统处理方式:
<iframe id="frame_content" src="iframe_bhtml" scrolling="no" frameborder="0" onload="thisheight=thiscontentWindowdocumentdocumentElementscrollHeight"></iframe>
两个方法都只处理了静的东西,就是只在内容加载的时候执行,如果JS去 *** 作DOM引起的高度变化,都不太方便。

什么是自适应高度吧。所谓iframe自适应高度,就是,基于界面美观和交互的考虑,隐藏了iframe的border和scrollbar,让人看不出它是个iframe。如果iframe始终调用同一个固定高度的页面,我们直接写死iframe高度就可以了。而如果iframe要切换页面,

<script type="text/javascript">
function resizeCrossDomainIframe(id, other_domain) {
var iframe = documentgetElementById(id);
windowaddEventListener('message', function(event) {
if (eventorigin !== other_domain) return; // only accept messages from the specified domain
if (isNaN(eventdata)) return; // only accept something which can be parsed as a number
var height = parseInt(eventdata) + 32; // add some extra height to avoid scrollbar
iframeheight = height + "px";
}, false);
}
</script>
<iframe src='abchtml' id="frm1" onload="resizeCrossDomainIframe('frm1', '
');">
</iframe>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12689628.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-27
下一篇2025-08-27

发表评论

登录后才能评论

评论列表(0条)

    保存