由于我们的微型网站是如何设置的,所以我有一个父页面,该页面通过iframe显示子页面。父页面是美化的页眉和页脚母版页面,子页面具有实际内容(这是我无法控制的)。不幸的是,子页面的高度不是静态的。这是一个带有一些出现和消失的元素的计算器。我尝试通过编写以下代码来使父页面的iframe尽可能自适应:
<!-- iFrame Resizer -->
<script>
function resizeIframe(obj) {
obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
}
$(window).resize(function(){
var obj = document.getElementById("ifmContent");
resizeIframe(obj);
});
</script>
<!-- /iFrame Resizer -->
<div style="overflow: auto">
<iframe src="index-iframe.html" frameborder="0" scrolling="no" onload="resizeIframe(this)" id="ifmContent"></iframe>
</div>
但是由于子页面具有自适应性和响应性,因此我将以下代码放置在子页面中:
var y = $("#divResults").innerHeight() + 200 + "px";
$(parent.document).find('#ifmContent').css("height",y);
一旦按下“计算”按钮并显示结果,就会触发此代码。
一切正常。但是,我遇到的问题是调整浏览器大小时。调整大小功能确实会触发,但是由于某些原因,我从子页面获得的高度值是调整大小之前的值。
例如,我在两个页面上都添加了警报,以便查看要获取的高度值。
对于父母,我有这个:
<!-- iFrame Resizer -->
<script>
function resizeIframe(obj) {
alert(obj.contentWindow.document.body.scrollHeight);
obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
}
$(window).resize(function(){
var obj = document.getElementById("ifmContent");
resizeIframe(obj);
});
</script>
<!-- /iFrame Resizer -->
在子页面上,我添加了此内容:
$(window).resize(function(){
var x = $(document).height();
alert(x);
});
因此,在加载时以及当我执行常规功能时,一切正常。但是,当我最小化窗口时,可以在调整大小之前获得文档高度的值:
然后,由于iframe的尺寸过小,内容就被切断了:
然后,当我最大化它时,我得到了最小化浏览器时的高度:
浏览器调整大小后,我是否可以获取高度值?