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

uiwebviewstringByEvaluatingJavaScriptFromStringUIWebView拦截

需求:混合应用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

ios UIWebView截获html并修改便签内容(转载)的更多相关文章

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

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

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

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

  3. PHP正则匹配到2个字符串之间的内容,匹配HTML便签内容

    PHP正则匹配到2个字符串之间的内容 $preg= '/xue[\s\S]*?om/i'; preg_match_all($preg,"学并思网址xuebingsi.com",$r ...

  4. UIWebview 截获html并修改内容。

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

  5. android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)

    如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http:// ...

  6. 魅族便签,是否能成为国内便签应用的No.1?

    继前不久锤子科技推出便签 Android 新版后,近期魅族在PRO 6公布会上也公布了最新的魅族便签应用.这一次魅族把便签应用拓展到了整个Android体系,也就是说.其它不论什么的Android手机 ...

  7. Android一个小巧的记录app(便签或者日记 随心)

    入驻博客园两个月今天第一次发随笔,,话不多说,直接上图展示效果 主界面用的RecyclerView的瀑布流(StaggeredGridLayoutManager),同时加上Floatbutton悬浮按 ...

  8. CSS3+JS 实现的便签应用

    概述 利用HTML5新增的 locationStorage 实现的便签应用,没有使用 JQuery,主要是为了练习原生JS的使用,采用响应式开发,在手机端和桌面端都有良好的体验,而且使用CSS3添加了 ...

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

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

随机推荐

  1. c语言指针详解(转载)

    转自(http://blog.csdn.net/ad_ad_ad/article/details/1522145) 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指 ...

  2. axis2学习, ant 构建axis2 ws

    1,axis2安装(windows)   . 环境需求:jdk 1.5, tomcat 6, maven 2, ant . 下载(bin表示二进制文件):http://mirror.bjtu.edu. ...

  3. C# 动态绘制任务栏图标的实现

    通常我们在做一个应用时会遇到这样的需求:将收到的消息条数显示到任务栏,比如如下的效果 怎么实现呢? 答案是采用WindowsAPICodePack实现,具体参见:Windows 7 任务栏开发 之 覆 ...

  4. C#中DllImport用法和路径问题

    DllImport是System.Runtime.InteropServices命名空间下的一个属性类,其功能是提供从非托管DLL导出的函数的必要调用信息.    DllImport属性应用于方法,要 ...

  5. Remove Duplicates from Sorted List @LeetCode

    /** * Remove Duplicates from Sorted List * * Given a sorted linked list, delete all duplicates such ...

  6. 浅谈iOS IPv6-only 新规

    5月份苹果发布新规,对于开发人员只需要做到以下几点就能顺利上线啦! 1.苹果从6月1日起,提供App Store审核的应用必须要兼容面向硬件识别和网络路由的最新互联网协议--IPv6-only标准.也 ...

  7. urlrewritingnet 域名http状态302 问题(转)

    UrlRewritingNet is an Url rewriting tool for ASP .Net and Elmahis a module for logging unhandled err ...

  8. sqlserver锁表、解锁、查看锁表

    sqlserver锁表.解锁.查看锁表 http://www.cnblogs.com/zfanlong1314/p/3698566.html http://www.cnblogs.com/chjf20 ...

  9. python中使用list作为默认参数且调用时不给其赋值的问题

    最近在写代码时发现一个有趣的地方,当python中的函数使用list作为默认参数且调用时不给其赋值时,无法通过在函数中将其赋值为[]来达到清空此默认参数的目的.按照道理来说,函数f1中的list为局部 ...

  10. maven的学习系列(四)—创建maven项目注意事项

    文件夹: <1> 中央工厂的位置 <2>mvn archetype:generate <3>Eclipse配置maven <4>在Eclipse中创建简 ...