Javascript jQuery返回错误的文档高度

Javascript jQuery返回错误的文档高度,javascript,jquery,css,cocoa,Javascript,Jquery,Css,Cocoa,我在Cocoa(Mac)中使用Webview,并试图获得文档的正确高度。只要做正常的事情,webview.mainFrame.frameView.documentView.bounds.size.height似乎在所有情况下都能正常工作,除了我刚刚发现的一个: 当我在这个网站上尝试这样做时,我得到的文档高度大约为500,而实际文档高度更像是2000+,因为我必须滚动几个屏幕才能到达最后 我尝试在webview中评估javascript以获得实际高度,方法如下: 但这些也给出了非常不正确的值,就

我在Cocoa(Mac)中使用Webview,并试图获得文档的正确高度。只要做正常的事情,
webview.mainFrame.frameView.documentView.bounds.size.height
似乎在所有情况下都能正常工作,除了我刚刚发现的一个:

当我在这个网站上尝试这样做时,我得到的文档高度大约为500,而实际文档高度更像是2000+,因为我必须滚动几个屏幕才能到达最后

我尝试在webview中评估javascript以获得实际高度,方法如下:

但这些也给出了非常不正确的值,就像我最初的方法一样。即使进入该页面,加载jQuery,然后执行$(document.body).height()之类的操作,也会给出一个非常不正确的值。有人知道发生了什么吗?是否有其他方法可以获得可靠的文档高度

我注意到检查员报告的镀铬高度也变得混乱起来。在这些屏幕截图中,您可以看到document.body height报告为小于其一个子节点的高度

chrome inspector中的子div高度“>


希望这能有所帮助。

我认为您得到的是window.innerWidth/Height,而不是整个文档

试试这个

document.body.offsetHeight
我在一个随机网页上尝试了一下,得到了+8000像素,这是正确的。我的窗口高度只有590(控制台打开ofc)

希望能有帮助

  • 莫勒

看起来像
html,body{height:100%}
屏幕滚动,.screen滚动>body{overflow:hidden}
会把事情搞得一团糟。如果将它们都设置为
高度:100%
并将body设置为
溢出:隐藏
,则html和body都将具有相同的
100%
高度,而没有
溢出
,这将使
文档的高度与
窗口的高度相同

因此,您可能实际上是在寻找
标题、导航和.background white
的高度之和,这更像
4222
,而不是您现在得到的
500

类似这样的内容:

var hh = $('header').height(),
    nh = $('nav').height(),
    bh = $('.background-white').height(),
    docHeight = hh+nh+bh;
alert(docHeight);//test

在页面加载之前等待怎么样? $(文档).ready(函数(){..})


我在Chrome上也有同样的问题。在一个网站上,有必要使用js调整两列的高度。当我单击F5时,其中一列的高度不同,请使用$(document)进行修复。准备好了吗?

这会发生在所有浏览器上,还是仅在Chrome上


2015年1月1日,chrome更新了他们的浏览器,这改变了一些值得注意的事情,但其中之一与计算浏览器窗口/视口有关。以下是帖子,也许会有所帮助:

此页面的内容如下:

HTML和正文(以及一些底层元素)都设置为100%的高度,因此它们完全适合浏览器窗口。在我的例子中,大约500像素高。那么它们如何建立这种滚动呢?嗯……有一个带溢出的div:auto,实际内容要多得多(大约4000px)

因此,您实际上不是在滚动整个页面,而是在滚动这个特定的div(签出布局前景滚动区域)

在这种情况下,文档高度为500px是完全正确的,您要查找的高度可以通过控制台通过以下方式找到:

document.querySelectorAll(".scrolling-region")[0].scrollHeight
这将给出4133px的高度,在本例中,这是页面的实际高度


干杯:)

我也面临着同样的问题。经过一整天的努力,我意识到了这一点,但如果我把语句称为inside window.onload,它会返回正确的高度。

我试过了,但在这种情况下给出了错误的答案。在media.com上试过。试过了,但在我所说的情况下不起作用:www.media.comis给出了与
窗口不同的值。innerHeight
这确实是一个有趣的问题。我已经更改了标题-我认为这更合适,应该引起更多的注意。这确实是一个bug,通过打开并激活一个我认为这是真正的bug,您应该向报告。谢谢,我刚刚这样做了:如中所述下面我的回答是,这不是jQuery错误,而是Medium团队的设计选择。我不认为这是一个缺陷。我应该知道的。谢谢!
document.querySelectorAll(".scrolling-region")[0].scrollHeight