- 浏览: 42931 次
文章分类
- 全部博客 (35)
- java (35)
- zk安装 (1)
- 从零开始认识 JasperReport + IReport (JasperReport部分) (1)
- Javadoc查看、搜索、比较利器——GroovyHelp 3.1.5 GA发布 (1)
- 设计模式-Simple Factory 模式 (1)
- biaodashi (1)
- 格局定乾坤 (1)
- 一个spatialReference引发的血案 (1)
- 创造亿万富翁的神奇公式 (1)
- 打印机 (2)
- js 调用flex 方法 (1)
- tomcat部署 (1)
- 2010 -> 2011 (1)
- Android颜色选择器 (1)
- 《软件开发的边界-管理成功的项目》 (1)
- 毕业了 (1)
- MapXtreme2004开发的Web程序的部署 (1)
- 一个比较有用的XML文件操作类 C#代码 可以继续扩展 (1)
- J2EE中 实体BEAN和会话BEAN的区别 (1)
- iOS开发之Objective-C与JavaScript的交互 (1)
- iOS开发之多媒体播放 (1)
- 单链表逆序 (1)
- ORA-01114错误原因及解决方法(临时表空间坏掉、或者满了) (1)
- hibernate使用sql查询text类型的字段出错 (1)
- 腾讯微博java(android) sdk 标签相关api详细介绍 (1)
- Android开发之数据保存技术(一) (1)
- 瞎混了好久,今天开博 (1)
- MySQL安装详解(V5.5 For Windows) (1)
- Execution in the Kingdom of Nouns (1)
- EJB 2.0 VS EJB3.0 (1)
- 一个简单的Unix脚本(文件拷贝打包) (1)
- php session_cache_limiter详解 (1)
- llvm-clang (1)
- jdbc学习笔记-----jdbc性能优化 (1)
- java教程:解析java的多线程机制(二) (1)
最新评论
iOS开发之Objective-C与JavaScript的交互
UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。
stringByEvaluatingJavaScriptFromString
使用stringByEvaluatingJavaScriptFromString方法,需要等UIWebView中的页面加载完成之后去调用。我们在界面上拖放一个UIWebView控件。在Load中将google mobile加载到这个控件中,代码如下:
- (void)viewDidLoad<br>
{<br>
[super viewDidLoad];<br>
webview.backgroundColor = [UIColor clearColor]; <br>
webview.scalesPageToFit =YES;<br>
webview.delegate =self;<br>
NSURL *url =[[NSURL alloc] initWithString:@"http://www.google.com.hk/m?gl=CN&hl=zh_CN&source=ihp"];<br><br>
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];<br>
[webview loadRequest:request]; <br>
}
<br>
我们在webViewDidFinishLoad方法中就可以通过javascript操作界面元素了。
1、获取当前页面的url。
<textarea readonly name="code" class="plain">- (void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];</textarea><br>
2、获取页面title:
<textarea readonly name="code" class="plain"> NSString *title = [webview stringByEvaluatingJavaScriptFromString:@"document.title"]; </textarea><br>
3、修改界面元素的值。
<textarea readonly name="code" class="plain"> NSString *js_result = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('q')[0].value='朱祁林';"];</textarea><br>
4、表单提交:
<textarea readonly name="code" class="plain"> NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "];</textarea><br>
这样就实现了在google搜索关键字:“朱祁林”的功能。
5、插入js代码
上面的功能我们可以封装到一个js函数中,将这个函数插入到页面上执行,代码如下:
<textarea readonly name="code" class="plain"> if ([title compare: @"Google"]==NSOrderedSame ) {
[webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = \"function myFunction() { "
"var field = document.getElementsByName('q')[0];"
"field.value='朱祁林';"
"document.forms[0].submit();"
"}\";"
"document.getElementsByTagName('head')[0].appendChild(script);"];
[webView stringByEvaluatingJavaScriptFromString:@"myFunction();"];
}</textarea><br>
看上面的代码:
a、首先通过js创建一个script的标签,type为'text/javascript'。
b、然后在这个标签中插入一段字符串,这段字符串就是一个函数:<span style="font-family: Courier New;">myFunction</span>,这个函数实现google自动搜索关键字的功能。
c、然后使用<span style="font-family: Courier New;">stringByEvaluatingJavaScriptFromString执行myFunction函数。</span>
<span style="font-family: Courier New;">演示:</span>
<span style="font-family: Courier New;">第一步打开google mobile网站</span>
<span style="font-family: Courier New;"><img alt="" src="http://hi.csdn.net/attachment/201108/4/0_13124170981Cg7.gif"></span>
<span style="font-family: Courier New;">第二步输入关键字</span>
<span style="font-family: Courier New;"><img alt="" src="http://hi.csdn.net/attachment/201108/4/0_13124171126OOZ.gif"></span>
<span style="font-family: Courier New;">第三步搜素</span>
<span style="font-family: Courier New;"><img alt="" src="http://hi.csdn.net/attachment/201108/4/0_1312417131AsZE.gif"></span>
总结:这篇文章主要是讲解了stringByEvaluatingJavaScriptFromString的用法,它的功能非常的强大,用起来非常简单,通过它我们可以很方便的操作uiwebview中的页面元素。
发表评论
-
java教程:解析java的多线程机制(二)
2012-02-08 15:27 974<div>四、线程间的同步 <div ... -
jdbc学习笔记-----jdbc性能优化
2012-02-08 15:07 961<div>这里说的是如何正确使用jdbc编 ... -
llvm-clang
2012-02-07 17:14 1008clang ... -
php session_cache_limiter详解
2012-02-07 15:18 2716<span style="backgr ... -
一个简单的Unix脚本(文件拷贝打包)
2012-02-04 17:09 919题目要求: 实现备份脚本,将目录: /sbin ... -
EJB 2.0 VS EJB3.0
2012-02-04 16:39 858SUMMARY: Removal of home in ... -
Execution in the Kingdom of Nouns
2012-02-03 16:39 1849<h3>Execution in the ... -
MySQL安装详解(V5.5 For Windows)
2012-02-01 09:39 789<p>MySQL安装详解(V5.5 For ... -
瞎混了好久,今天开博
2012-01-31 14:13 760<p>作为一名“无证”程序员,自己瞎混了这 ... -
Android开发之数据保存技术(一)
2012-01-11 17:14 7890<h1>Android开发之数据保存技术( ... -
腾讯微博java(android) sdk 标签相关api详细介绍
2012-01-11 13:53 1094<span style="font-f ... -
hibernate使用sql查询text类型的字段出错
2011-12-28 16:28 1421晚上查了一下,做个记录 hibernate默认不支持t ... -
ORA-01114错误原因及解决方法(临时表空间坏掉、或者满了)
2011-12-28 14:23 1747<span style="font-f ... -
单链表逆序
2011-12-21 11:24 1358实现一: #include "stdafx. ... -
iOS开发之多媒体播放
2011-12-19 15:49 978iOS sdk中提供了很多方便的方法来播放多媒体。本 ... -
J2EE中 实体BEAN和会话BEAN的区别
2011-12-15 10:14 882<span style="" ... -
一个比较有用的XML文件操作类 C#代码 可以继续扩展
2011-12-15 09:49 877CXml</span>{</spa ... -
MapXtreme2004开发的Web程序的部署
2011-12-14 16:39 835</span></font>& ... -
毕业了
2011-12-14 11:39 670今天终于顺利的通过了硕士毕业答辩。<br> ... -
《软件开发的边界-管理成功的项目》
2011-12-13 10:04 733本书是Rational Software的资深项目经理 ...
相关推荐
IOS下 内嵌 HTML编辑器 Objective-C与JavaScript数据交互
有了JSPatch,我们便可以在iOS App开发中令JavaScript代码调用原生的Objective-C属性和方法等,下面就来详细看一下如何在iOS中使用JSPatch框架使Objective-C与JavaScript代码交互
c 方法 及传参如果SDK版本大于IO7可以用下JavaScriptCore.framework 框架,进行与 ObJective-c的交互,下边是个demoJavaScriptCore.framework :iOS7 中新加入的框架,用来处理JavaScript。JavaScriptCore 是苹果 ...
ios7之后,ios中加入了JavaScriptCore框架。该框架让Objective-C和JavaScript代码直接的交互变得更加的简单方便。ios 原生与js交互,demo代码,其中包括利用JSBinding简单使用!
进阶操作则涵盖了与JavaScript的交互,包括如何在Objective-C和JavaScript之间传递数据,如何调用彼此的方法等。这部分的实现非常有助于提升应用的交互性和功能性。在高级操作中,项目还实现了一个加载进度条,让用户...
它使用BridgeSupport文件从Objective-C“框架”动态生成API,并使用节点ffi模块与Objective-C运行时进行动态交互。 本质上, NodObjC本质上与其他流行的Objective-C脚本桥相似: 因此,您可以完全使用Node.js ...
现在好的IOS 的 APP有时候会跟网页内容相关联,当然也是增加用户体验,及更好的,有效的体现APP 的功能。 由于本人在项目中会用到这部分功能,做下记录! JS调用OC 很多应用里面或多或少的调用了网页,来达到绚丽的...
Objective-C 与 JavaScript 交互 JavaScript 与 Objective-C 交互 内存管理 多线程 ##二、JavaScriptCore 简介 ###1、JavaScriptCore 和 JavaScriptCore 框架 首先要区分JavaScriptCore 和 JavaScriptCore框架(同后...
objective-C 于 javascript 的交互, 点击网页中标签包裹的的图片, 展示大图, 并浏览所有的图片
JavaScriptCore交互一点简析 欢迎大家点评 互相学习
C#(读作C Sharp)是一种由微软公司开发的...移动应用开发:包括iOS开发(使用Swift或Objective-C)和Android开发(使用Java或Kotlin)等。 大数据技术:包括Hadoop、Spark、Hive等用于处理和分析大规模数据集的技术。
C#(读作C Sharp)是一种由微软公司开发的...移动应用开发:包括iOS开发(使用Swift或Objective-C)和Android开发(使用Java或Kotlin)等。 大数据技术:包括Hadoop、Spark、Hive等用于处理和分析大规模数据集的技术。
C#(读作C Sharp)是一种由微软公司开发的...移动应用开发:包括iOS开发(使用Swift或Objective-C)和Android开发(使用Java或Kotlin)等。 大数据技术:包括Hadoop、Spark、Hive等用于处理和分析大规模数据集的技术。
C#(读作C Sharp)是一种由微软公司开发的...移动应用开发:包括iOS开发(使用Swift或Objective-C)和Android开发(使用Java或Kotlin)等。 大数据技术:包括Hadoop、Spark、Hive等用于处理和分析大规模数据集的技术。
C#(读作C Sharp)是一种由微软公司开发的...移动应用开发:包括iOS开发(使用Swift或Objective-C)和Android开发(使用Java或Kotlin)等。 大数据技术:包括Hadoop、Spark、Hive等用于处理和分析大规模数据集的技术。
C#(读作C Sharp)是一种由微软公司开发的...移动应用开发:包括iOS开发(使用Swift或Objective-C)和Android开发(使用Java或Kotlin)等。 大数据技术:包括Hadoop、Spark、Hive等用于处理和分析大规模数据集的技术。