У меня плохой опыт работы с DOM, но после некоторого поиска я обнаружил, что document.readyState - отличный вариант.
Из w3schools:
Определение и использование Свойство readyState возвращает (загрузка) статус текущего документа.
Это свойство возвращает одно из четырех значений:
неинициализирован - загрузка еще не началась
загрузка - загрузка
интерактивный - загружен достаточно, и пользователь может взаимодействовать с ним
завершено - полностью загружен
Поэтому я использую это, чтобы узнать, когда UIWebView загрузил документ:
- (void)readyState:(NSString *)str
{ NSLog(@"str:%@",str);
if ([str isEqualToString:@"complete"]||[str isEqualToString:@"interactive"]) {
NSLog(@"IT HAS BEEN DONE");
[pageLoadingActivityIndicator stopAnimating];
}
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//other code...
[self readyState:[browserWebView stringByEvaluatingJavaScriptFromString:@"document.readyState"]];
}