页面总高度

问题描述:

我想要使用JavaScript和jQuery获取页面的总高度,这样我就可以检查页面是否足够长以显示某些内容,但是在我的测试中,我无法获取总高度的页面。页面总高度

我在互联网上浏览过,但这样的事情似乎没有很好的记录,因为我可以找到的是scrollHeight,正如我所提到的,它不起作用。

任何方式来使用jQuery来找到它?

如果没有一个框架:

var _docHeight = (document.height !== undefined) ? document.height : document.body.offsetHeight; 
var _docWidth = (document.width !== undefined) ? document.width : document.body.offsetWidth; 

您试过$(document).height();

演示here

+0

这给出了一个错误。 – 2009-07-06 16:59:43

+0

作品对我来说http://pastebin.me/4a52303ca45de - 请确保您有Firefox的萤火虫+打开控制台这 – redsquare 2009-07-06 17:12:08

看一看在documentation。支持的方法之一:height,innerHeight,outerHeight可能适合您。

也许使用元素的位置在页面的底部,如:

$("#footer").offset().top 

身高整个页面的...

document.body.offsetHeight 

视口高度...

var h; 

if(self.innerHeight) 
    h = window.innerHeight 
else if(document.documentElement && document.documentElement.clientHeight) 
    h = document.documentElement.clientHeight; 
else if(document.body) 
    h= document.body.clientHeight; 

This article可能会帮助你。

document.documentElement.scrollHeight对于我在最新版本的Internet Explorer,Chrome,Firefox和Safari中正常工作。

要找到高度整个文档你可以只找到当前页面上的最高DOM节点用一个简单的递归:

;(function() { 
    var pageHeight = 0; 

    function findHighestNode(nodesList) { 
     for (var i = nodesList.length - 1; i >= 0; i--) { 
      if (nodesList[i].scrollHeight && nodesList[i].clientHeight) { 
       var elHeight = Math.max(nodesList[i].scrollHeight, nodesList[i].clientHeight); 
       pageHeight = Math.max(elHeight, pageHeight); 
      } 
      if (nodesList[i].childNodes.length) findHighestNode(nodesList[i].childNodes); 
     } 
    } 

    findHighestNode(document.documentElement.childNodes); 

    // The entire page height is found 
    console.log('Page height is', pageHeight); 
})(); 

注意:它正在与Iframes

享受!