IOS UIWebView截获html并修改便签内容,宽度自适应
需求:混合应用UIWebView打开html后,UIWebView有左右滚动条,要去掉左右滚动效果; 方法:通过js截获UIWebView中的html,然后修改html标签内容; 实例代码: 服务器端html
- <html><head>
 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 - <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
 - <title>网曝四川省一考场时钟慢半小时 老师称这就是命</title></head<body>网曝四川省一考场时钟慢半小时 老师称这就是命</body></html>
 
这样显示的结果网页的最小宽度会是device-width;但有时候不需要这个宽度,就需要修改width=device-width为width=myWidth; 
客户端代码
- - (void)webViewDidFinishLoad:(UIWebView *)webView
 - {
 - //修改服务器页面的meta的值
 - NSString *meta = [NSString stringWithFormat:@"document.getElementsByName(\"viewport\")[0].content = \"width=%f, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\"", webView.frame.size.width];
 - [webView stringByEvaluatingJavaScriptFromString:meta];
 - }
 
这样问题就可以解决了
新增代码:
- //给网页增加utf-8编码
 - [webView stringByEvaluatingJavaScriptFromString:
 - @"var tagHead =document.documentElement.firstChild;"
 - "var tagMeta = document.createElement(\"meta\");"
 - "tagMeta.setAttribute(\"http-equiv\", \"Content-Type\");"
 - "tagMeta.setAttribute(\"content\", \"text/html; charset=utf-8\");"
 - "var tagHeadAdd = tagHead.appendChild(tagMeta);"];
 
- //给网页增加css样式
 - [webView stringByEvaluatingJavaScriptFromString:
 - @"var tagHead =document.documentElement.firstChild;"
 - "var tagStyle = document.createElement(\"style\");"
 - "tagStyle.setAttribute(\"type\", \"text/css\");"
 - "tagStyle.appendChild(document.createTextNode(\"BODY{padding: 20pt 15pt}\"));"
 - "var tagHeadAdd = tagHead.appendChild(tagStyle);"];
 
- //拦截网页图片 并修改图片大小
 - [webView stringByEvaluatingJavaScriptFromString:
 - @"var script = document.createElement('script');"
 - "script.type = 'text/javascript';"
 - "script.text = \"function ResizeImages() { "
 - "var myimg,oldwidth;"
 - "var maxwidth=380;" //缩放系数
 - "for(i=0;i <document.images.length;i++){"
 - "myimg = document.images[i];"
 - "if(myimg.width > maxwidth){"
 - "oldwidth = myimg.width;"
 - "myimg.width = maxwidth;"
 - "myimg.height = myimg.height * (maxwidth/oldwidth);"
 - "}"
 - "}"
 - "}\";"
 - "document.getElementsByTagName('head')[0].appendChild(script);"];
 - [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];
 
其他html属性重载和此方法类似; 
参考网址: 
(stringByEvaluatingJavaScriptFromString的使用方法)http://www.uml.org.cn/mobiledev/201108181.asp   
( iphone 获取UIWebView内Html方法)http://blog.csdn.net/diyagoanyhacker/article/details/6564897 
(IOS UIWebView引用外部CSS样式)http://hi.baidu.com/jwq359699768/item/780879e5c98bfb3e4ddcaf22
IOS UIWebView截获html并修改便签内容,宽度自适应的更多相关文章
- ios UIWebView截获html并修改便签内容(转载)
		
ios UIWebView截获html并修改便签内容 博客分类: iphone开发iphone开发phoneGap uiwebviewstringByEvaluatingJavaScriptFromS ...
 - ios UIWebView截获html并修改便签内容
		
需求:混合应用UIWebView打开html后,UIWebView有左右滚动条,要去掉左右滚动效果: 方法:通过js截获UIWebView中的html,然后修改html标签内容: 实例代码: 服务器端 ...
 - PHP正则匹配到2个字符串之间的内容,匹配HTML便签内容
		
PHP正则匹配到2个字符串之间的内容 $preg= '/xue[\s\S]*?om/i'; preg_match_all($preg,"学并思网址xuebingsi.com",$r ...
 - UIWebview 截获html并修改内容。
		
需求:混合应用UIWebView打开html后,UIWebView有左右滚动条,要去掉左右滚动效果: 方法:通过js截获UIWebView中的html,然后修改html标签内容: 实例代码: 服务 ...
 - UIWebView获得内容的高  高度自适应 宽度自适应
		
UIWebView获得内容的高-作出自适应高的UIWebView- (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *height ...
 - android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)
		
如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http:// ...
 - 魅族便签,是否能成为国内便签应用的No.1?
		
继前不久锤子科技推出便签 Android 新版后,近期魅族在PRO 6公布会上也公布了最新的魅族便签应用.这一次魅族把便签应用拓展到了整个Android体系,也就是说.其它不论什么的Android手机 ...
 - Android一个小巧的记录app(便签或者日记   随心)
		
入驻博客园两个月今天第一次发随笔,,话不多说,直接上图展示效果 主界面用的RecyclerView的瀑布流(StaggeredGridLayoutManager),同时加上Floatbutton悬浮按 ...
 - CSS3+JS 实现的便签应用
		
概述 利用HTML5新增的 locationStorage 实现的便签应用,没有使用 JQuery,主要是为了练习原生JS的使用,采用响应式开发,在手机端和桌面端都有良好的体验,而且使用CSS3添加了 ...
 
随机推荐
- poj 3621 0/1分数规划求最优比率生成环
			
思路:以val[u]-ans*edge[i].len最为边权,判断是否有正环存在,若有,那么就是ans小了.否则就是大了. 在spfa判环时,先将所有点进队列. #include<iostrea ...
 - C++之环境搭建
			
1.安装g++ 下载https://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw-get-0.6.2-beta-2013 ...
 - 【CSS3】---text-overflow 与 word-wrap
			
text-overflow用来设置是否使用一个省略标记(...)标示对象内文本的溢出. 语法: 但是text-overflow只是用来说明文字溢出时用什么方式显示,要实现溢出时产生省略号的效果,还须定 ...
 - MDNavBarView下拉导航菜单(仿美团导航下拉菜单)
			
说到下拉导航菜单这个东西用得还真不少,细心算一下做开发以来这样的菜单已经写了第三次了,但基本都是不能复用.感觉特累人.不经意看到同事写一个类似的下拉菜单,但他引用了开源库仿大众菜单的库,大致看了一下, ...
 - 获取字符串对应的MD5值  (AL16UTF16LE)
			
CREATE OR REPLACE FUNCTION fn_md5_utf16le (InputString IN VARCHAR2) RETURN VARCHAR2 IS retval ); /** ...
 - Floyd最短路径算法
			
看完这篇文章写的小程序,Floyd最短路径算法,求从一个点到另一个点的最短距离,中间可以经过其他任意个点.三个for循环,从i到j依次经过k的最短距离,最外层for循环是经过点K,内部两个循环是从i( ...
 - 细说SQL 连接
			
连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句 也可以包含搜索条件,以进一步筛选连接条件所选的行. ...
 - 20141124-HTML-JavaScrilpt
			
JavaScript JavaScript(简称JS),他是一门HTML的脚本语言,用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. 他的用法及语法类似于Visual Stud ...
 - UI1_ViewController视图切换及Appdelegate
			
// // ThirdViewController.h // UI1_ViewController视图切换及Appdelegate // // Created by zhangxueming on 1 ...
 - lua中pairs和ipairs的区别
			
标准库提供了集中迭代器,包括迭代文件每行的(io.lines),迭代table元素的(pairs),迭代数组元素的(ipairs),迭代字符串中单词的 (string.gmatch)等等.LUA手册中 ...