Проверка, существует ли класс в UIWebView - PullRequest
1 голос
/ 03 января 2011

Я хочу использовать JavaScript, чтобы проверить, существует ли класс в UIWebView. Это то, что я до сих пор:

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

В принципе, я хочу как-то проверить, существует ли на странице класс 'waldo'. Когда я запускаю приведенный выше код, я получаю пустую строку независимо от того, существует класс или нет. Есть предложения?

1 Ответ

5 голосов
/ 03 января 2011

Основная хитрость в использовании stringByEvaluatingJavaScriptFromString: оценка выражений, которые оценивают тип, который может быть легко преобразован в строку (обычно работают нативные простые типы: 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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...