iOS 获取webView的内容高度

- (void)webViewDidFinishLoad:(UIWebView *)webView

{

    if (_isloadingFinish) {

        

        [self.YYWebView  setHidden:NO];

        

    }else{

        

//        NSString *js_fit_code = [NSString stringWithFormat:@"var meta = document.createElement('meta');"

//                                 "meta.name = 'viewport';"

//                                 "meta.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes';"

//                                 "document.getElementsByTagName('head')[0].appendChild(meta);"];

        

        //js获取body宽度

        NSString *bodyWidth= [webView stringByEvaluatingJavaScriptFromString: @"document.body.scrollWidth "];

        

        int widthOfBody = [bodyWidth intValue];

        

        //获取实际要显示的html

        NSString *html = [self htmlAdjustWithPageWidth:widthOfBody

                                                  html:self.dataDcit[@"content"]

                                               webView:webView];

        

        //设置为已经加载完成

        _isloadingFinish = YES;

        //加载实际要现实的html

        [self.YYWebView loadHTMLString:html baseURL:nil];

    }

}

 

//获取宽度已经适配于webView的html。这里的原始html也可以通过js从webView里获取

- (NSString *)htmlAdjustWithPageWidth:(CGFloat )pageWidth

                                 html:(NSString *)html

                              webView:(UIWebView *)webView

{

    NSMutableString *str = [NSMutableString stringWithString:html];

    //计算要缩放的比例

    CGFloat initialScale = webView.frame.size.width/pageWidth;

    //将</head>替换为meta+head

    NSString *stringForReplace = [NSString stringWithFormat:@"<meta name=\"viewport\" content=\" initial-scale=%f, minimum-scale=0.1, maximum-scale=2.0, user-scalable=yes\"></head>",initialScale];

    

    NSRange range =  NSMakeRange(0, str.length);

    //替换

    

    

    [str replaceOccurrencesOfString:@"</head>" withString:stringForReplace options:NSLiteralSearch range:range];

    return str;

}

 

 

高度: 1 NSString *height_str= [webView stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"];  

  1.     int height = [height_str intValue];  

 

 

转载于:https://my.oschina.net/u/3653720/blog/2209225

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值