0

Web ページの特定の部分を抽出するためのコードを作成する予定なので、stringByEvaluatingJavaScriptFromString: を使用して HTML を解析することにしました。以下は私のテストコードです

[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 はコンソールに文字列を返しません。誰か助けてくれませんか?

4

2 に答える 2

0

私の推測では、Webページの読み込みが完了する前にこのコードを実行していると思います。

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;
于 2012-05-15T12:51:50.503 に答える
0

getElementsById は、文字列ではなくオブジェクトを返します。次のように使用する必要があります。

document.body.getElementById('hi').outerHTML
于 2013-10-30T10:04:25.540 に答える