2010-12-30 9 views
10

Ich bin auf der Suche nach einigen ziemlich grundlegenden JS in meinem UIWebView ausführen. In der Delegierten Web-Ansicht, die ich habe:UIWebView stringByEvaluatingJavaScriptFromString

- (void)webViewDidFinishLoad:(UIWebView *)wView { 
    NSString *someHTML = [wView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('box')[0]"]; 
    NSString *allHTML = [wView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"]; 
    NSLog(@"someHTML: %@", someHTML); 
    NSLog(@"allHTML: %@", allHTML); 
} 

aber wenn die Methode aufgerufen wird, ist someHTML nil während allHTML den gesamten Körper des HTML in der Webansicht enthält.

Ich habe die JS in der Safari-JS-Konsole laufen und es funktioniert gut (es findet ein div der Klasse ‚Box‘, also weiß ich, dass seine im HTML)

Irgendwelche Vorschläge?

Weitere Informationen:

FWIW, die in jedem der folgenden Folge ist auch nil

NSString *result = [self.webView stringByEvaluatingJavaScriptFromString: @"document"]; 
NSLog (@"1. result: %@", result); //should log the document object? 

result = [self.webView stringByEvaluatingJavaScriptFromString: @"document.body"]; 
NSLog (@"2. result: %@", result); //should log the document body 

result = [self.webView stringByEvaluatingJavaScriptFromString: @"document.body.getElementsByClassName"]; 
NSLog (@"3. result: %@", result); //should log a function 

result = [self.webView stringByEvaluatingJavaScriptFromString: @"document.body.getElementsByClassName('box')[0]"]; 
NSLog (@"4. result: %@", result); //should log the node 

Antwort

20

Ändern

NSString *someHTML = [wView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('box')[0]"]; 

zu

NSString *someHTML = [wView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('box')[0].innerHTML;"]; 

(hinzugefügt, um die .innerHTML)

macht den Unterschied in der Welt. . .

+0

können Sie dies auch http://stackoverflow.com/questions/10793698/how-to-make-image-maps-clickable-using-uiwebview-in-iphone überprüfen –

Verwandte Themen