自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS開發(fā):Objective-C與JavaScript的交互

移動(dòng)開發(fā) iOS
UIWebView是iOS最常用的SDK之一,它有一個(gè)stringByEvaluatingJavaScriptFromString方法可以將javascript嵌入頁(yè)面中,通過這個(gè)方法我們可以在iOS中與UIWebView中的網(wǎng)頁(yè)元素交互。

stringByEvaluatingJavaScriptFromString

使用stringByEvaluatingJavaScriptFromString方法,需要等UIWebView中的頁(yè)面加載完成之后去調(diào)用。我們?cè)诮缑嫔贤戏乓粋€(gè)UIWebView控件。在Load中將googlemobile加載到這個(gè)控件中,代碼如下:

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

我們?cè)趙ebViewDidFinishLoad方法中就可以通過javascript操作界面元素了。

1、獲取當(dāng)前頁(yè)面的url。

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

2、獲取頁(yè)面title:

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

3、修改界面元素的值。

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

4、表單提交:

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

 

這樣就實(shí)現(xiàn)了在google搜索關(guān)鍵字:“朱祁林”的功能。

5、插入js代碼

上面的功能我們可以封裝到一個(gè)js函數(shù)中,將這個(gè)函數(shù)插入到頁(yè)面上執(zhí)行,代碼如下:

  1. [webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"   
  2. "script.type = 'text/javascript';"   
  3. "script.text = \"function myFunction() { "   
  4. "var field = document.getElementsByName('q')[0];"   
  5. "field.value='朱祁林';"   
  6. "document.forms[0].submit();"   
  7. "}\";"   
  8. "document.getElementsByTagName('head')[0].appendChild(script);"];    
  9.          
  10. [webView stringByEvaluatingJavaScriptFromString:@"myFunction();"];   

看上面的代碼:

a、首先通過js創(chuàng)建一個(gè)script的標(biāo)簽,type為'text/javascript'。

b、然后在這個(gè)標(biāo)簽中插入一段字符串,這段字符串就是一個(gè)函數(shù):myFunction,這個(gè)函數(shù)實(shí)現(xiàn)google自動(dòng)搜索關(guān)鍵字的功能。

c、然后使用stringByEvaluatingJavaScriptFromString執(zhí)行myFunction函數(shù)。

演示:

第一步打開google mobile網(wǎng)站

第二步輸入關(guān)鍵字


第三步搜素

總結(jié):這篇文章主要是講解了stringByEvaluatingJavaScriptFromString的用法,它的功能非常的強(qiáng)大,用起來非常簡(jiǎn)單,通過它我們可以很方便的操作uiwebview中的頁(yè)面元素。

原文地址:http://www.cnblogs.com/zhuqil/archive/2011/08/03/2126562.html

責(zé)任編輯:佚名 來源: 麒麟的blog
相關(guān)推薦

2011-08-04 09:47:33

iOS Objective- JavaScript

2014-04-01 10:50:42

iOS開發(fā)runtimeObjective-C

2011-04-08 10:51:17

Objective-CiOS

2014-09-26 09:49:48

SwiftObjective-C

2011-07-28 15:11:23

iOS Objective-

2011-07-18 14:59:20

iPhone Objective-

2011-07-07 17:04:33

iPhone Action Objective-

2011-03-18 17:35:43

2013-07-24 13:49:45

iOS高效開發(fā)

2011-08-10 18:07:29

Objective-C反射

2011-08-04 13:38:01

Objective-C C++

2011-08-03 16:22:05

Objective-C CodeBlocks

2011-07-29 15:47:21

iPhone開發(fā) Objective- C

2011-08-16 13:43:40

Objective-C文件cocoa

2011-05-11 15:58:34

Objective-C

2013-03-27 12:54:00

iOS開發(fā)Objective-C

2013-06-20 10:40:32

Objective-C實(shí)現(xiàn)截圖

2011-05-11 11:20:26

Objective-C

2014-04-03 09:36:47

Objective-Cruby消息傳遞

2010-09-01 09:19:33

Objective-CiPhone開發(fā)iPhone
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)