页面总高度

我正在尝试使用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();

在这里演示

document.documentElement.scrollHeight在最新版本的Internet Explorer,Chrome,Firefox和Safari中对我有效。

整页高度……

 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; 

本文可能对您有所帮助。

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

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

要查找整个文档高度,您可以通过简单的递归找到当前页面上最高的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

请享用!

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