2010-06-17 3 views
0

Я пытаюсь запустить некоторый javascript против UIWebView, но он, похоже, не работает. Например, вот фрагмент HTML я использую для тестирования:UIWebView неправильно оценивает javascript

<html><body><h1>Hello World!</h1><p>It's me.</p></body></html> 

Если я запускаю следующий JavaScript против него, возвращаемое значение равно 0, когда оно должно быть 1.

var elements = document.getElementsByTagName("h1"); 
elements.length; 

Вот код objc, который я использую для веб-просмотра. «СА» является строка, содержащая вышеуказанную JavaScript:

[webView loadHTMLString:@"<html><body><h1>Hello World!</h1><p>It's me.</p></body></html>" baseURL:nil]; 
NSString *markupResult = [webView stringByEvaluatingJavaScriptFromString:parser]; 

ответ

2

При дальнейшем исследовании, проблема оказалась в том, что WebView не закончил загрузку, когда Javascript был вызван. Мне пришлось вызвать javascript из callback-запроса делегата webViewDidFinishLoad.

4

Реализация метода UIWebViewDidfinishLoading и писать следующий код внутри него

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSString *markupResult = [webView stringByEvaluatingJavaScriptFromString:parser]; 
} 
Смежные вопросы