真正的跨浏览器方式获取文档高度?

时间:2013-03-15 10:30:17

标签: javascript web-applications web

我的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中是截止的。

是否有一些真正的跨浏览器方式来获得这个高度,或者我正在做其他错误的事情? 谢谢您的时间

1 个答案:

答案 0 :(得分:0)

我会使用类似jQuery的东西来帮助解决这个问题(因为使用高度方法似乎因浏览器而异),这里有一些jQuery代码可以提供帮助:

$(document).height(); // height of HTML doc
相关问题