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-    width:%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);
}

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

 

转载于:https://www.cnblogs.com/sjxjjx/p/6380975.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值