Я застрял на том, чтобы запустить довольно простой JS в моем UIWebView. В делегате веб-представления у меня есть:
- (void)webViewDidFinishLoad:(UIWebView *)wView {
NSString *someHTML = [wView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('box')[0]"];
NSString *allHTML = [wView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"];
NSLog(@"someHTML: %@", someHTML);
NSLog(@"allHTML: %@", allHTML);
}
, но когда вызывается метод, someHTML равен нулю, в то время как allHTML содержит все тело HTML в веб-представлении.
Я запустил JS в консоли Safari JS и он работает нормально (он находит div класса 'box', поэтому я знаю, что он находится в HTML)
Есть предложения?
Подробнее:
FWIW, результат в каждом из следующих случаев также равен нулю
NSString *result = [self.webView stringByEvaluatingJavaScriptFromString: @"document"];
NSLog (@"1. result: %@", result); //should log the document object?
result = [self.webView stringByEvaluatingJavaScriptFromString: @"document.body"];
NSLog (@"2. result: %@", result); //should log the document body
result = [self.webView stringByEvaluatingJavaScriptFromString: @"document.body.getElementsByClassName"];
NSLog (@"3. result: %@", result); //should log a function
result = [self.webView stringByEvaluatingJavaScriptFromString: @"document.body.getElementsByClassName('box')[0]"];
NSLog (@"4. result: %@", result); //should log the node