2010-06-17 1 views
0

J'essaye d'exécuter du javascript contre un UIWebView mais ça ne semble pas marcher. Par exemple, voici un extrait de HTML que je utilise pour tester:UIWebView n'évaluant pas javascript correctement

<html><body><h1>Hello World!</h1><p>It's me.</p></body></html> 

Si je lance le javascript suivant contre, la valeur de retour est 0, quand il devrait être 1.

var elements = document.getElementsByTagName("h1"); 
elements.length; 

Voici le code d'objc que j'utilise pour le webview. « Analyseur » est une chaîne contenant le javascript ci-dessus:

[webView loadHTMLString:@"<html><body><h1>Hello World!</h1><p>It's me.</p></body></html>" baseURL:nil]; 
NSString *markupResult = [webView stringByEvaluatingJavaScriptFromString:parser]; 

Répondre

2

Après enquête, le problème est avéré être que WebView avait pas fini le chargement lorsque le javascript a été appelé. J'ai dû appeler le javascript depuis le rappel du délégué webViewDidFinishLoad.

4

Mettre en oeuvre le procédé UIWebViewDidfinishLoading et écrire le code suivant à l'intérieur

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSString *markupResult = [webView stringByEvaluatingJavaScriptFromString:parser]; 
}