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 - ];
- [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的高度的更多相关文章
- iOS 【终极方案】精准获取webView内容高度,自适应高度
前言:是这样的,刚写完上一篇文章还没缓过神来,上一篇文章我还提到了,想和大家聊聊原生+H5如何无缝连接的故事.结果我朋友就给我发了两篇他的作品.他的做法也都有独到之处.好的文章都是这样,让你每次看都能 ...
- iOS【野路子】精准获取webView内容高度,自适应高度
关于WebView内容高度的获取,相信很多人都踩过坑,无法获取到准确高度,导致页面布局出现差错,搜到的资料很多但都无法解决问题,以下是个人经验总结: 项目需求实现H5文章&原生评论效果,文章是 ...
- iOS-tableview【终极方案】精准获取webView内容高度,自适应高度
关于WebView内容高度的获取,相信很多人都踩过坑,无法获取到准确高度,导致页面布局出现差错,搜到的资料很多但都无法解决问题,以下是个人经验总结: 项目需求实现H5文章&原生评论效果,文章是 ...
- 【iOS】swift-通过JS获取webView的高度
let webHeightStr = webView.stringByEvaluatingJavaScriptFromString("document.body.scrollHeight& ...
- 在vue项目中 获取容器的高度
左右并列两个容器,左边的不固定高度,右侧的高度要和左边的高度一致, var offsetHeight = $('.left).outerHeight(); $('.right').outerHeigh ...
- iOS项目中获取验证码倒计时及闪烁问题解决方案
-(void)startTime{ __block int timeout= 59; //倒计时时间 dispatch_queue_t queue = dispatch_get_global_queu ...
- 【iOS】swift-获取webView的高度
func webViewDidFinishLoad(webView: UIWebView) { let webHeightStr = webView.stringByEvalu ...
- iOS项目之WKWebView替换UIWebView相关
在网上已经有了许多关于UIWebView替换为WKWebView的文章,所以在这里就不在多说替换的细节了,不会的可以在网上搜搜. 下面是我在项目中遇到的问题: 问题一:在UIWebView中,网页显示 ...
- iOS UIWebView 获取内容实际高度,关闭滚动效果
本文转载至 http://my.oschina.net/Khiyuan/blog/341535 iOS UIWebView 获取内容实际高度,关闭滚动效果 近期做东西,将 UIWebView 嵌套 ...
随机推荐
- js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合
现在有一批手机,其中颜色有['白色','黑色','金色','粉红色']:内存大小有['16G','32G','64G','128G'],版本有['移动','联通','电信'],要求写一个算法,实现[[ ...
- CentOS 7下安装samba
Samba是一种软件,它可以运行在非Windows平台上,比如UNIX, Linux, IBM System 390, OpenVMS或其他操作系统.Samba使用安装在主机上的TCP/IP协议.当正 ...
- 用google map实现周边搜索功能
项目要实现根据经纬度获取附近的建筑,由于项目在海外运营,谷歌地图首当其冲. 首先说明的是,该功能需要在服务端实现,也就是安卓的SDK不适用. api文档地址: https://developers.g ...
- vscode编辑器自动生成.vue文件
1.选择“文件 -> 首选项 -> 用户代码片段”,此时,会弹出一个搜索框,输入vue 选择vue后,编辑器会自动打开一个名字为vue.json的文件 2.复制以下内容到这个文件中: { ...
- phpcms栏目标签调用
$CATEGORY[$catid][catid] 栏目id $CATEGORY[$catid][module] 栏目所在的模块 $C ...
- Map 嵌套存储Map
import java.util.HashMap;import java.util.Iterator;import java.util.Set;import java.util.Map.Entry; ...
- Android 函数
inflate: https://blog.csdn.net/u012702547/article/details/52628453 public View inflate(XmlPullParser ...
- 终于等到你!WebOptimizer - A bundler and minifier for ASP.NET Core
迷人的 ASP.NET Core 有一个美中不足之处,自从一开始接触它到现在,我就一直不喜欢,一直想找到替代品,甚至想过自己实现一个,它就是 BundlerMinifier . 昨天面对 bundle ...
- day17:递归函数
1,递归函数是一个函数体系,非常的难 2,练习题一 # 3.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb name=['alex','wupeiqi','yuanhao',' ...
- Attention模型
李宏毅深度学习 https://www.bilibili.com/video/av9770302/?p=8 Generation 生成模型基本结构是这样的, 这个生成模型有个问题是我不能干预数据生成, ...