jQuery返回错误的文档高度

Isa*_*sak 4 javascript css jquery cocoa

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

http://www.medium.com.

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

我试图在webview中评估javascript以获得实际高度,使用如下所列的方法:如何使用JavaScript获取整个文档的高度?

但是这些也给出了非常不正确的值,就像我最初的方法一样.甚至去那个页面,加载jQuery,然后像$(document.body).height()这样的东西给出一个非常不正确的值.有谁知道发生了什么?是否有其他方法可以获得可靠的文档高度?

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

在chrome检查员中的medium.com身高 medium.com body->镀铬检查员中的子div高度

Jac*_*ter 9

这个页面的内容如下:

HTML和Body(以及一些底层元素)都设置为100%高度,因此它们完全适合浏览器窗口.在我的情况下,大约500像素高.他们如何建立这种滚动呢?嗯...有一个溢出的div:auto和实际内容更多(大约4000px)

所以你实际上不是滚动整个页面,而是这个特定的div(检查布局 - 前景滚动区域)

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

document.querySelectorAll(".scrolling-region")[0].scrollHeight
Run Code Online (Sandbox Code Playgroud)

这将给你4133px的高度,在这种情况下,这是页面的实际高度.

干杯:)