2015-04-02 44 views
0

我想獲取用戶在網頁輸入字段中輸入的所有值。我想這樣的代碼:如何從stringByEvaluatingJavaScriptFromString:目標C中的方法執行長JavaScript?

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 

    NSString *javaScript = @"var e = document.getElementsByTagName('input')for(var e in elements){if(e.type == 'text'){e.value}}"; 
    NSString *html = [myWebView stringByEvaluatingJavaScriptFromString:javaScript]; 

    NSLog(@"test of html: %@",html); 

    return YES; 
} 

好像它不工作:

如果我知道雖然ID:

javaScript = @"document.getElementById('lst-ib').value"; 
NSString *html = [myWebView stringByEvaluatingJavaScriptFromString:javaScript]; 

它將工作。

回答

0
for (int i = 0; i<100; i++) { 

    NSString *javaScript = [NSString stringWithFormat:@"document.getElementsByTagName('input')[%d].value",i]; 

    NSString *test = [NSString stringWithFormat:@"document.getElementsByTagName('input')[%d].name",i]; 

    NSString *html = [myWebView stringByEvaluatingJavaScriptFromString:javaScript]; 

    NSString *html2 = [myWebView stringByEvaluatingJavaScriptFromString:test]; 

    if (html.length > 2) { 
     NSLog(@"Value %d: >>>> %@ %@",i,html,html2); 
    } 
} 

這解決了我的查詢。我沒有實現長的JavaScript,但通過目標c循環了代碼。

相關問題