gpt4 book ai didi

javascript - HTML - 页面的全高,包括滚动之外的内容

转载 作者:行者123 更新时间:2023-11-30 13:38:07 24 4
gpt4 key购买 nike

我需要找出页面的高度,包括超出隐藏的垂直滚动条的内容。我搜索了 google 和 stackoverflow QA,但这些解决方案不适用于我的情况。

一个条件是我不能更改 HTML 或 BODY css。基本上我正在为 firefox 扩展尝试这个

所有的方法都是

offsetHeight, scrollHeight, getComputedValue

在 noupe.com 网站上无法正常工作。每次我尝试查找 body 的上述属性时,即使页面高度超过 4000 像素,它也只会给我 18 像素。

尝试过 jQuery 的

$(document).height();

也没用。

这就是我找出页面高度的方法:

var x = window.content;
var pageBody = x.document.getElementsByTagName("body")[0];
var my_pageheight = parseInt(x.document.defaultView.getComputedStyle(pageBody, "").getPropertyValue("height"));

这在 noupe.com 上给了我 18px,但在其他网站上效果很好。任何线索我怎样才能使这项工作。

谢谢

最佳答案

怎么样

$('body').height();

我本来打算发布一个解释,但下面评论中的 Alex 替我做了,所以我想我只是发布一些链接到可以找到更多相关信息的地方:

http://dev.opera.com/articles/view/35-floats-and-clearing/
http://www.smashingmagazine.com/2007/05/01/css-float-theory-things-you-should-know/

还要记住,因为我们正在处理 body 元素,所以我们不能使用 overflow: hidden 方法(这会从页面中删除滚动条)。

此外,谢天谢地,您可以注入(inject)新元素,我正在考虑使用它作为解决方案...

var max = 0;

$('body *').each(function(){
var current = $(this);
if ((current.offset().top + current.height()) > max) max = current.offset().top + current.height();
});

可能算作我写过的最糟糕的 Javascript 之一,因为你说你不能再添加 CSS 或 HTML。以下(假设您仍然需要它)应该有效:

$('<div />').css({
'height': 0,
'width': 0,
'visibility': 'hidden',
'clear': 'both'
}).appendTo('body');

$('body').height();

关于javascript - HTML - 页面的全高,包括滚动之外的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com