2011-01-02 11 views
1

javascriptを使用して、クラスがUIWebView内に存在するかどうかを確認したいと考えています。これは私がこれまで持っているものです。クラスがUIWebViewに存在するかどうかを調べる

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

が、私は基本的にクラスのワルドは」のページ内に存在するかどうかを確認するために何らかの方法たいです。上記のコードを実行すると、クラスが存在するかどうかにかかわらず、空の文字列が得られます。助言がありますか?

答えて

5

stringByEvaluatingJavaScriptFromStringを使用する主なトリックは、型に評価される式を評価して文字列に簡単に変換できるようにすることです(ネイティブの単純型、通常work:float、int、string)。あなたの例では、@ "document.getElementsByClassName( 'waldo');"単純な文字列表現を持たないNodeList型であるため、空の文字列が得られます。たとえば、waldoクラスの要素リストの長さを取得してみてください。

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

ありがとうFelz!それは完璧に働いた:D – trx25

関連する問題