博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发之Objective-C与JavaScript交互操作
阅读量:7172 次
发布时间:2019-06-29

本文共 2390 字,大约阅读时间需要 7 分钟。

from:

iOS开发之Objective-CJavaScript交互操作是本文要介绍的内容,主要主要是讲解了stringByEvaluatingJavaScriptFromString的用法,它的功能非常的强大,用起来非常简单,通过它我们可以很方便的操作uiwebview中的页面元素。

UIWebView是iOS最常用的8SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。

  1. stringByEvaluatingJavaScriptFromString 

使用stringByEvaluatingJavaScriptFromString方法,需要等UIWebView中的页面加载完成之后去调用。我们在界面上拖放一个UIWebView控件。在Load中将google mobile加载到这个控件中,代码如下:

viewDidLoad
- (void)viewDidLoad  {      [super viewDidLoad];     webview.backgroundColor = [UIColor clearColor];        webview.scalesPageToFit =YES;      webview.delegate =self;       NSURL *url =[[NSURL alloc]    initWithString:@"http://www.google.com.hk/m?gl=CN&hl=zh_CN&source=ihp"];       NSURLRequest *request =  [[NSURLRequest alloc] initWithURL:url];       [webview loadRequest:request];   }

 

我们在webViewDidFinishLoad方法中就可以通过javascript操作界面元素了。

1、获取当前页面的url。

- (void)webViewDidFinishLoad:(UIWebView *)webView {      NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];  }

 

2、获取页面title:

- (void)webViewDidFinishLoad:(UIWebView *)webView {       NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];     NSString *title = [webview stringByEvaluatingJavaScriptFromString:@"document.title"];  }

 

3、修改界面元素的值。

NSString *js_result = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('q')[0].value='朱祁林';"]; 

4、表单提交:

NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "]; 

这样就实现了在google搜索关键字:“朱祁林”的功能。

5、插入js代码

上面的功能我们可以封装到一个js函数中,将这个函数插入到页面上执行,代码如下:

View Code
[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();"  ];

 

看上面的代码:

a、首先通过js创建一个script的标签,type为'text/javascript'。

b、然后在这个标签中插入一段字符串,这段字符串就是一个函数:myFunction,这个函数实现google自动搜索关键字的功能。

c、然后使用stringByEvaluatingJavaScriptFromString执行myFunction函数。

演示:

第一步打开google mobile网站,如图:

第二步输入关键字,如图:

第三步搜素,如图:

 

转载地址:http://qpbzm.baihongyu.com/

你可能感兴趣的文章
忽略PNG透明区域的事件(AS/Flash)
查看>>
文本框只能输入正整数(大于0的整数)代码
查看>>
一步一个脚印学习WCF系列之WCF概要—WCF服务的创建与调用HelloWorld实例,通过配置文件方式(六)...
查看>>
只需简单一步,android自带的示例程序 BluetoothChat 变蓝牙串口助手
查看>>
在WIN7下安装运行mongodb
查看>>
(C#)与Windows用户账户信息的获取
查看>>
thrift之TTransport层的内存缓存传输类TMemoryBuffer
查看>>
使用pull方式解析xml文件示例:
查看>>
学习jQuery的免费资源:电子书、视频、教程和博客
查看>>
找出数列中个数大于总数一半的元素(编程之美2.3)
查看>>
断路器(CircuitBreaker)设计模式
查看>>
SQL中利用DMV进行数据库性能分析
查看>>
讨论:程序员高手和菜鸟的区别是什么?
查看>>
SQL Server里的 ISNULL 与 NULLIF
查看>>
Linux Systemcall By INT 0x80、Llinux Kernel Debug Based On Sourcecode
查看>>
imageNamed 与 imageWithContentsOfFile的区别
查看>>
【Mysql 调用存储过程,输出参数的坑】
查看>>
LCS算法
查看>>
COM结构化存储中存储对象或者流对象的命名规则
查看>>
iOS开发基础知识--碎片26
查看>>