我的 ASP.NET Web 应用程序页面上的 iframe 中包含一个控件。控件根据用户在其上选择的内容相应地更改其垂直大小(一些元素进入,其他元素退出)。因此,我必须精确设置 iframe 大小以显示整个控件,而不是在 iframe 与其下方的元素之间产生间隙。
在网络上的某个地方,我找到了一种以跨浏览器方式获取文档高度的方法:
function getDocHeight(document) {
return Math.max(
Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
Math.max(document.body.clientHeight, document.documentElement.clientHeight)
);
}
因此,在控制页面上的 self.document.body.onload 上,我调用了这个函数:
function adjustIframeHeight() {
var iframe = window.parent.document.getElementById(window.frameElement.id);
var iframeHeight = getDocHeight(iframe.contentWindow.document);
iframe.style.height = iframeHeight + "px";
}
问题是它在 Firefox 中运行良好,但在某些情况下,控件的底部部分在 Chrome 和 IE 中被截断。
是否有一些真正的跨浏览器方法来获得这个高度,或者我做错了什么?谢谢你的时间