• 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);
    }

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

  • 相关阅读:
    在线制作流程图
    表格设计有感
    mvp需要加上单利模式
    2015.7.17( NOI2015 day1 )
    BZOJ 2073: [POI2004]PRZ( 状压dp )
    1688: [Usaco2005 Open]Disease Manangement 疾病管理( 枚举 )
    BZOJ 1072: [SCOI2007]排列perm( )
    BZOJ 1475: 方格取数( 网络流 )
    BZOJ 3524: [Poi2014]Couriers( 主席树 )
    BZOJ 1087: [SCOI2005]互不侵犯King( 状压dp )
  • 原文地址:https://www.cnblogs.com/sjxjjx/p/6380975.html
Copyright © 2020-2023  润新知