UIWebView stringByEvaluatingJavaScriptFromstring
Je suis coincé sur l'obtention de certains assez basique JS pour exécuter dans mon UIWebView. Dans la vue web du délégué, j'ai :
- (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);
}
mais lorsque la méthode est appelée, someHTML est nul alors allHTML contient l'ensemble du corps de l'HTML dans la webview.
J'ai exécuter le JS dans le Safari JS console et il fonctionne très bien (il trouve une div de classe "boîte" donc je sais que sa dans le code HTML)
Des suggestions?
Plus d'infos:
FWIW, résultat dans chacun des cas suivants est également nul
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
OriginalL'auteur TomH | 2010-12-30
Vous devez vous connecter pour publier un commentaire.
Changer
à
(ajoutée le .innerHTML)
fait toute la différence dans le monde . . .
OriginalL'auteur TomH