
并不是里页面高度自适是,而是外面的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;
}
}
在代码维护角度考虑,方法二是优于方法一的,因为方法一,每个被包含页都要去引入一段相同的代码来做这个事情,创建了好多副本。
如果只考虑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>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)