簡體   English   中英

如何獲取已加載到UIWebView中的網頁的高度?

[英]How to get the height of the webpage that got loaded in UIWebView?

我使用了以下方法,但現在仍無法獲得正確的值:

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

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

webView.scrollView.contentSize.height

我已經訪問了以上所有內容,

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

}

你可以通過兩種方式

方法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);

方法2:

UIWebView *objWebView = [[UIWebView alloc] init];
for (UIScrollView *v in objWebView.subviews) {
    if ([v isKindOfClass:[UIScrollView class]])
    {
        CGSize requiredSize = v.contentSize;
    }
}

我認為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>

您可以使用以下方法獲取Webview的高度

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

用這個

let height = webView.scrollView.contetSize.height

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM