获取高度值的方法:

- (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 - ];
[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 - ];
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);
}

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

iOS项目之获取WebView的高度的更多相关文章

  1. iOS 【终极方案】精准获取webView内容高度,自适应高度

    前言:是这样的,刚写完上一篇文章还没缓过神来,上一篇文章我还提到了,想和大家聊聊原生+H5如何无缝连接的故事.结果我朋友就给我发了两篇他的作品.他的做法也都有独到之处.好的文章都是这样,让你每次看都能 ...

  2. iOS【野路子】精准获取webView内容高度,自适应高度

    关于WebView内容高度的获取,相信很多人都踩过坑,无法获取到准确高度,导致页面布局出现差错,搜到的资料很多但都无法解决问题,以下是个人经验总结: 项目需求实现H5文章&原生评论效果,文章是 ...

  3. iOS-tableview【终极方案】精准获取webView内容高度,自适应高度

    关于WebView内容高度的获取,相信很多人都踩过坑,无法获取到准确高度,导致页面布局出现差错,搜到的资料很多但都无法解决问题,以下是个人经验总结: 项目需求实现H5文章&原生评论效果,文章是 ...

  4. 【iOS】swift-通过JS获取webView的高度

     let webHeightStr = webView.stringByEvaluatingJavaScriptFromString("document.body.scrollHeight& ...

  5. 在vue项目中 获取容器的高度

    左右并列两个容器,左边的不固定高度,右侧的高度要和左边的高度一致, var offsetHeight = $('.left).outerHeight(); $('.right').outerHeigh ...

  6. iOS项目中获取验证码倒计时及闪烁问题解决方案

    -(void)startTime{ __block int timeout= 59; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queu ...

  7. 【iOS】swift-获取webView的高度

        func webViewDidFinishLoad(webView: UIWebView) {         let webHeightStr = webView.stringByEvalu ...

  8. iOS项目之WKWebView替换UIWebView相关

    在网上已经有了许多关于UIWebView替换为WKWebView的文章,所以在这里就不在多说替换的细节了,不会的可以在网上搜搜. 下面是我在项目中遇到的问题: 问题一:在UIWebView中,网页显示 ...

  9. iOS UIWebView 获取内容实际高度,关闭滚动效果

    本文转载至 http://my.oschina.net/Khiyuan/blog/341535   iOS UIWebView 获取内容实际高度,关闭滚动效果 近期做东西,将 UIWebView 嵌套 ...

随机推荐

  1. python中通过字符串名来调用函数

    强调:eval()函数功能虽然强大,但是也很危险,这个方法需要慎重使用. 利用python中的内置函数 eval() ,函数说明: def eval(*args, **kwargs): # real ...

  2. Cxf weblogic 报错: when resolving method "javax.xml.bind.JAXBElement

    Cxf weblogic 报错: when resolving method "javax.xml.bind.JAXBElement ============================ ...

  3. ReentrantLock可重入锁的理解和源码简单分析

    import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; /** * @author ...

  4. vue---computed计算属性的使用

    一直以来在使用vue的时候,会对vue的computed属性和watch属性具体的使用分不清楚,总算花点时间整理了下. computed:通常用于监控自己定义的变量,这个变量可以不再data中定义,直 ...

  5. C++ Msi函数判断应用是否已经安装

    #include <Windows.h> #include <Msi.h> #pragma comment(lib, "Msi.lib") bool Che ...

  6. 15.vue动画& vuex

    Vue.config.productionTip = false; ==是否显示提示信息== ==import/export== export xxx 必须跟跟对象或者和定义一起 对象: export ...

  7. background-color:transparent

    background-color没有none值   在工作中发现, 这样是没反应的, 要写这个样式才能去掉背景颜色() background-color属性详细链接: http://www.w3sch ...

  8. MySQL建表、插入语句等

    不定时更新MySQL的一些基础语句以及出现过的问题 5.10 建表语句 CREATE TABLE `policy_landvalue` ( `id` ) NOT NULL AUTO_INCREMENT ...

  9. MySQL数据库(增删查改)

    创建一个表:create table user( uid varchar(10) , pwd int(10) ); 学生表: create table student( sno varchar(20) ...

  10. vue的属性样式绑定,

    <template> <div id="app"> <div v-html="H"></div>  //绑定ht ...