0

我的 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 中被截断。

是否有一些真正的跨浏览器方法来获得这个高度,或者我做错了什么?谢谢你的时间

4

1 回答 1

0

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

$(document).height(); // height of HTML doc
于 2013-03-15T10:36:07.607 回答