您可以查看四种不同的属性来获取 iFrame 中内容的高度。
document.documentElement.scrollHeight
document.documentElement.offsetHeight
document.body.scrollHeight
document.body.offsetHeight
可悲的是,他们都可以给出不同的答案,而且这些在浏览器之间是不一致的。如果您将正文边距设置为 0,则document.body.offsetHeight给出了最佳答案。要获得正确的值,请尝试此功能;它取自iframe-resizer库,该库还负责在内容更改或调整浏览器大小时保持 iFrame 的正确大小。
function getIFrameHeight(){
    function getComputedBodyStyle(prop) {
        function getPixelValue(value) {
            var PIXEL = /^\d+(px)?$/i;
            if (PIXEL.test(value)) {
                return parseInt(value,base);
            }
            var 
                style = el.style.left,
                runtimeStyle = el.runtimeStyle.left;
            el.runtimeStyle.left = el.currentStyle.left;
            el.style.left = value || 0;
            value = el.style.pixelLeft;
            el.style.left = style;
            el.runtimeStyle.left = runtimeStyle;
            return value;
        }
        var 
            el = document.body,
            retVal = 0;
        if (document.defaultView && document.defaultView.getComputedStyle) {
            retVal =  document.defaultView.getComputedStyle(el, null)[prop];
        } else {//IE8 & below
            retVal =  getPixelValue(el.currentStyle[prop]);
        } 
        return parseInt(retVal,10);
    }
    return document.body.offsetHeight +
        getComputedBodyStyle('marginTop') +
        getComputedBodyStyle('marginBottom');
}