0

我使用了以下方法,但现在仍然没有得到正确的值:

[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"] floatValue]

[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"]

webView.scrollView.contentSize.height

我已经访问了以上所有内容,

- (void)webViewDidFinishLoad:(UIWebView *)aWebView 
{

}
4

4 回答 4

2

你可以通过两种方式得到这个

方法1:像这样加载你的html

embedHTML = [embedHTML stringByAppendingFormat:
               @"<body><div id='size_div'>%@</div></body></html>",yourString];

现在在 webViewDidFinishLoad 方法中保留此语句...

NSString *output = [webView stringByEvaluatingJavaScriptFromString:
                      @"document.getElementById(\"size_div\").offsetHeight;"];  
NSLog(@"height: %@", output);

方法二:

UIWebView *objWebView = [[UIWebView alloc] init];
for (UIScrollView *v in objWebView.subviews) {
    if ([v isKindOfClass:[UIScrollView class]])
    {
        CGSize requiredSize = v.contentSize;
    }
}
于 2013-03-05T09:20:43.757 回答
0

我认为webView.scrollView.contentSize是在加载 HTML 时由 webView 本身自动设置的。你有没有像这样尝试过:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
     float h = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"] floatValue];

    // h is the height of the loaded webpage...

}

并且不要忘记设置 webView 的委托YourViewController: UIViewController <UIWebViewDelegate>

于 2013-03-05T09:16:53.460 回答
0

您可以使用获取 webview 高度

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    float height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"] floatValue];
}
于 2013-03-05T09:37:15.930 回答
-1

用这个

let height = webView.scrollView.contetSize.height
于 2017-09-26T11:08:55.580 回答