2012-05-15 57 views
0

我想写一段代码来提取网页的某些部分,所以我决定使用stringByEvaluatingJavaScriptFromString:来解析HTML。下面 是我的测试代码stringByEvaluatingJavaScriptFromString:不会返回任何字符串

[webView loadHTMLString:@"<html><body><div id='hi'><font size=20>hello world</font></div></body></html>" baseURL:nil]; 

NSString *hiValue = [webView stringByEvaluatingJavaScriptFromString:@"document.body.getElementById('hi')"]; 

NSLog(@"value: %@",hiValue); 

的NSLog不会返回在控制台上的任何字符串。有人给我一些帮助吗?

回答

0

我的猜测是你在网页加载完成之前执行了这段代码。

尝试使用UIWebViewDelegatewebViewDidFinishLoad:方法中调用您的代码。

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    [webView loadHTMLString:@"<html><body><div id='hi'><font size=20>hello world</font></div></body></html>" baseURL:nil]; 

    NSString *hiValue = [webView stringByEvaluatingJavaScriptFromString:@"document.body.getElementById('hi')"]; 

    NSLog(@"value: %@",hiValue); 
} 

不要忘记设置委托在viewDidLoad:

webView.delegate = self; 
+0

谢谢!它的工作现在 – user842589

+0

很高兴帮助:) –

0

getElementsById返回一个对象而不是字符串。你应该这样使用:

document.body.getElementById('hi').outerHTML 
相关问题