Pet*_*uza 5 macos cocoa webkit webview
我尝试了很多东西,在这里发布了很多问题,但我仍然无法获得在 Cocoa WebKit WebView 中保存 HTML 页面所需的最小大小。
我对 DOM 进行了奇怪的操作,在那里我可以获得 HTML 内容大小的近似值,正如您在图片中看到的,我基于此调整了窗口大小,并且几乎可以正常工作,但我意识到的是:
如果Webview 足够智能,可以显示准确的滚动条(当然是这样),为什么没有界面让程序员可以获得该值?有你知道的方法吗?
PS:请不要提供 javascript 解决方案,我需要从应用程序中实现它。无论如何,作为 Webkit 的 html API 应该比托管的 javascript 代码更了解其内容,不是吗?

您需要使用 Javascript 来获得正确的高度。
改编自:如何使用 JavaScript 获取整个文档的高度?
(function () {
var body = document.body,
html = document.documentElement;
return Math.max( body.scrollHeight, body.offsetHeight,
html.clientHeight, html.scrollHeight, html.offsetHeight );
})();
Run Code Online (Sandbox Code Playgroud)
该 JavaScript 将为您提供 HTML 的高度。您可以将其注入到 WebView 中,如下所示:
NSString *height = [webView stringByEvaluatingJavaScriptFromString:@"(function(){var a=document.body,b=document.documentElement;return Math.max(a.scrollHeight,a.offsetHeight,b.clientHeight,b.scrollHeight,b.offsetHeight)})();"];
Run Code Online (Sandbox Code Playgroud)
height现在包含 HTML 的高度作为字符串。