有些文件我不能得到文件的高度(位置绝对在最底部)。此外,填充底部似乎在这些页面上不起任何作用,但在高度将返回的页面上起作用。相关案例:
http://fandango.com
http://paperbackswap.com
在胡闹
jQuery的$(文档).height ();返回正确的值
文档。Height返回0
document.body.scrollHeight返回0
关于平装书互换:
jQuery的$(文档).height ();TypeError: $(document)为空
文档。Height返回不正确的值
scrollheight返回错误的值
注意:我有浏览器级别的权限,如果有一些技巧在那里。
你甚至可以用这个:
var B = document.body,
H = document.documentElement,
height
if (typeof document.height !== 'undefined') {
height = document.height // For webkit browsers
} else {
height = Math.max( B.scrollHeight, B.offsetHeight,H.clientHeight, H.scrollHeight, H.offsetHeight );
}
或者以一种更jQuery的方式(因为你说过jQuery不会撒谎):)
Math.max($(document).height(), $(window).height())
全文高度计算:
为了更通用,找到任何文档的高度,你可以通过简单的递归找到当前页面上最高的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);
})();
你可以把这个脚本粘贴到DevTools控制台,在你的示例站点(http://fandango.com/或http://paperbackswap.com/)上测试它。
注意:它与Iframes一起工作。
享受吧!