需求:混合应用UIWebView打开html后,UIWebView有左右滚动条,要去掉左右滚动效果;

方法:通过js截获UIWebView中的html,然后修改html标签内容; 
实例代码: 
服务器端html

Java代码  
  1. <html><head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  4. <title>网曝四川省一考场时钟慢半小时 老师称这就是命</title></head<body>网曝四川省一考场时钟慢半小时 老师称这就是命</body></html>

这样显示的结果网页的最小宽度会是device-width;但有时候不需要这个宽度,就需要修改width=device-width为width=myWidth; 
客户端代码

Java代码  
  1. - (void)webViewDidFinishLoad:(UIWebView *)webView
  2. {
  3. //修改服务器页面的meta的值
  4. 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];
  5. [webView stringByEvaluatingJavaScriptFromString:meta];
  6. }

这样问题就可以解决了

新增代码:

Java代码  
  1. //给网页增加utf-8编码
  2. [webView stringByEvaluatingJavaScriptFromString:
  3. @"var tagHead =document.documentElement.firstChild;"
  4. "var tagMeta = document.createElement(\"meta\");"
  5. "tagMeta.setAttribute(\"http-equiv\", \"Content-Type\");"
  6. "tagMeta.setAttribute(\"content\", \"text/html; charset=utf-8\");"
  7. "var tagHeadAdd = tagHead.appendChild(tagMeta);"];
Java代码  
  1. //给网页增加css样式
  2. [webView stringByEvaluatingJavaScriptFromString:
  3. @"var tagHead =document.documentElement.firstChild;"
  4. "var tagStyle = document.createElement(\"style\");"
  5. "tagStyle.setAttribute(\"type\", \"text/css\");"
  6. "tagStyle.appendChild(document.createTextNode(\"BODY{padding: 20pt 15pt}\"));"
  7. "var tagHeadAdd = tagHead.appendChild(tagStyle);"];
Java代码  
  1. //拦截网页图片  并修改图片大小
  2. [webView stringByEvaluatingJavaScriptFromString:
  3. @"var script = document.createElement('script');"
  4. "script.type = 'text/javascript';"
  5. "script.text = \"function ResizeImages() { "
  6. "var myimg,oldwidth;"
  7. "var maxwidth=380;" //缩放系数
  8. "for(i=0;i <document.images.length;i++){"
  9. "myimg = document.images[i];"
  10. "if(myimg.width > maxwidth){"
  11. "oldwidth = myimg.width;"
  12. "myimg.width = maxwidth;"
  13. "myimg.height = myimg.height * (maxwidth/oldwidth);"
  14. "}"
  15. "}"
  16. "}\";"
  17. "document.getElementsByTagName('head')[0].appendChild(script);"];
  18. [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 
http://blog.csdn.net/xdonx/article/details/6973521

UIWebview 截获html并修改内容。的更多相关文章

  1. ios UIWebView截获html并修改便签内容(转载)

    ios UIWebView截获html并修改便签内容 博客分类: iphone开发iphone开发phoneGap uiwebviewstringByEvaluatingJavaScriptFromS ...

  2. IOS UIWebView截获html并修改便签内容,宽度自适应

    需求:混合应用UIWebView打开html后,UIWebView有左右滚动条,要去掉左右滚动效果:  方法:通过js截获UIWebView中的html,然后修改html标签内容:  实例代码:  服 ...

  3. ios UIWebView截获html并修改便签内容

    需求:混合应用UIWebView打开html后,UIWebView有左右滚动条,要去掉左右滚动效果: 方法:通过js截获UIWebView中的html,然后修改html标签内容: 实例代码: 服务器端 ...

  4. POI根据EXCEL模板,修改内容导出新EXCEL (只支持HSSF)

    package excelPoiTest; import java.io.File; import java.io.FileInputStream; import java.io.FileOutput ...

  5. Oracle 中利用闪回查询确定某表在某时间点之后的修改内容,并恢复至该时间点

    Oracle 中利用闪回查询确定某表在某时间点之后的修改内容: 1.查看 DELETE 及 UPDATE 操作修改的数据: SQL> SELECT * FROM tab AS OF TIMEST ...

  6. Example011表单中修改内容

    <!-- 实例011表单中修改内容的方法 --> <!DOCTYPE html> <html lang="en"> <head> & ...

  7. dedecms中{dede:myad name='about'/} 修改内容

    网站首页index.htm中调用这个命令,显示一段文字,但是想要修改内容.所以想知道这个命令指定的文件内容在哪里寻找或者指定内容在哪里修改? 匿名 | 浏览 6036 次 发布于2014-02-19 ...

  8. git教程: 查看文件状态与修改内容

    转载:时光机穿梭 我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed ...

  9. Git 查询某次历史提交的修改内容

    在工作时,有时候想查看某次的提交修改了哪些的内容. 我们首先可以git log显示历史的提交列表: 之后我们用git show <commit-hashId> 便可以显示某次提交的修改内容 ...

随机推荐

  1. DELPHI新版本WEBSERVICE的变化

    DELPHI新版本WEBSERVICE,不仅可以编译成ISAPI DLL,依靠IIS部署, 并且还可以编译成单独的EXE,不再依赖IIS就可以独立运行,这一点未尝不可以说是非常方便的改进.

  2. php oop-1

    <?php //类的定义以 class 关键字开始 后面跟 类的名称 通常第一个字母大写 以 大括号开始 和结束 //类的属性和方法 前面都要加关键字 例如public class NbaPla ...

  3. LintCode-分糖果

    有 N 个小孩站成一列.每一个小孩有一个评级. 依照下面要求.给小孩分糖果: 每一个小孩至少得到一颗糖果. 评级越高的小孩能够得到很多其它的糖果. 需最少准备多少糖果? 您在真实的面试中是否遇到过这个 ...

  4. [Vue] Setup custom keyCode

    Vue provide some shortcut methods: @mousemove.stop is comparable to e.stopPropogation() @mousemove.p ...

  5. [Vue @Component] Load Vue Async Components

    Vue provides a straight-forward syntax for loading components at runtime to help shave off initial b ...

  6. 精确计算java中float和double的精度

    [本文相关的代码放在github上.地址为:https://github.com/VigourJiang/StructuredFloat] Java中double类型的格式基本遵循IEEE 754标准 ...

  7. Windows Azure 故障转移模式及高可用个模式探讨!

     眼下国内非常多用户对于云服务的可用性存在误解,什么样子的误解呢?比方某云服务商,在华南某地有一个机房,在华东有一个机房. 这个客户就提到一个需求,你提供的99%可用性的概念是什么意思呢?是不是我 ...

  8. 《iOS Human Interface Guidelines》——Wallet

    Wallet Wallet(钱包)帮助人们查看和管理Pass(凭证),这是一种相似于登机牌.优惠券.会员卡.奖励卡和各种票的物理凭证的数字替代.Wallet也同意人们加入信用卡.借记卡和储值卡来和Ap ...

  9. DM8168 dead JTAG clock

    针对新板调试,不针对EVM板. TI XDS560连上DM8168 20pin仿真接口 launch 8168.ccxml,右击CortexA8,选择Connect Target 出现错误例如以下: ...

  10. Batch基本知识

    一般情况下,每条命令占据一行: 当然也可以将多条命令用特定符号(如:&:.&&:.|.||等)分隔后写入同一行中: 还有的情况就是像if.for等较高级的命令则要占据几行.几十 ...