zoukankan      html  css  js  c++  java
  • iOS项目之获取WebView的高度

      获取高度值的方法:

    - (void)webViewDidFinishLoad:(UIWebView *)webView
    {
        // 获取webView的高度
        CGFloat webViewHeight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
        CGFloat webViewHeight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];
        CGFloat webViewHeight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.clientHeight"] floatValue];
    }

      遇到的问题:在这里采用的是加载HTML代码,由于前端H5中格式问题,网页中图片过大,显示不完整,于是自己做了以下处理,使图片适配屏幕大小

    - (void)webViewDidFinishLoad:(UIWebView *)webView
    {
        // 1、只对本地html资源的图片有效果
        NSString *js = @"function imgAutoFit() { 
                        var imgs = document.getElementsByTagName('img'); 
                        for (var i = 0; i < imgs.length; ++i) {
                            var img = imgs[i];   
                            img.style.maxWidth = %f;   
                            } 
                        }";
        js = [NSString stringWithFormat:js, [UIScreen mainScreen].bounds.size.width - 20];
        [self.myWebView stringByEvaluatingJavaScriptFromString:js];
        [self.myWebView stringByEvaluatingJavaScriptFromString:@"imgAutoFit()"];
        
        
        // 获取webView的高度
        CGFloat webViewHeight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
        NSLog(@"%.f", webViewHeight);
    }

      但是这样做的话,获取的网页高度还是以前一样的内容高度,但图片改变了大小,导致网页下方留出了多余的空白。

      于是再次进行了修改,将获取到的HTML代码拼接一个格式后,再来请求HTML网页,

        /*- 在加载网页时添加代码 -*/ 
        // 手动改变图片适配问题,拼接html代码后,再加载html代码
        NSString *myStr = [NSString stringWithFormat:@"<head><style>img{max-    %f !important;}</style></head>", [UIScreen mainScreen].bounds.size.width - 20];
        NSString *str = [NSString stringWithFormat:@"%@%@",myStr, html5代码];
        [self.myWebView loadHTMLString:str baseURL:nil];
         /*- 在加载网页时添加代码 -*/ 
    
    
    - (void)webViewDidFinishLoad:(UIWebView *)webView
    {
        // 获取webView的高度
        CGFloat webViewHeight = [[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
      NSLog(@"%.f",webViewHeight);
    }

      这样就完美适配屏幕大小了!

  • 相关阅读:
    BZOJ 2016十连测 D3T3序列
    Luogu3579 Solar Panels
    POI2014解题报告
    BZOJ4377 Kurs szybkiego czytania Luogu 3589[POI2015]KUR
    Luogu3587[POI2015]POD
    BZOJ4386[POI2015]Wycieczki / Luogu3597[POI2015]WYC
    BZOJ4381 : [POI2015]Odwiedziny / Luogu3591[POI2015]ODW
    HDU 1133 Buy the ticket
    HDU RPG的错排 【错排&&组合】
    【转】求逆元的n种方法
  • 原文地址:https://www.cnblogs.com/sjxjjx/p/6380975.html
Copyright © 2011-2022 走看看