2011-01-02 8 views
1

Ich möchte JavaScript verwenden, um zu überprüfen, ob eine Klasse innerhalb eines UIWebView existiert. Das ist, was ich habe, so weit:Überprüfen, ob eine Klasse in einem UIWebView existiert

NSString* checkForWaldoCmd = [[NSString alloc] initWithString:@"document.getElementsByClassName('waldo');"]; 
NSString* wheresWaldo = [myUIWebView stringByEvaluatingJavaScriptFromString:checkForWaldoCmd]; 

Ich mag im Grunde someway, wenn die Klasse ‚Waldo‘ innerhalb der Seite existiert überprüfen. Wenn ich den obigen Code ausführe, erhalte ich eine leere Zeichenfolge, ob die Klasse existiert oder nicht. Irgendwelche Vorschläge?

Antwort

5

Der Haupttrick zur Verwendung von stringByEvaluatingJavaScriptFromString: dient zum Auswerten von Ausdrücken, die zu einem Typ ausgewertet werden, kann leicht in String konvertiert werden (native einfache Typen arbeiten normalerweise: float, int und string). In Ihrem Beispiel @ "document.getElementsByClassName ('waldo');" wird vom Typ NodeList sein, der keine einfache Zeichenfolgendarstellung hat und deshalb eine leere Zeichenkette erhält. Versuchen Sie zum Beispiel, die Länge der Liste der Elemente mit Klasse Waldo zu erhalten:

NSString *count = [myUIWebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('waldo').length;"]; 
if ([count intValue] > 0){ 
    NSLog(@"Have elements of class waldo"); 
}else{ 
    NSLog(@"Don't have elements of class waldo"); 
} 
+0

Danke Felz! Das hat perfekt funktioniert: D – trx25

Verwandte Themen