2

uiwebview に静的 html ファイルをロードしています。webViewDidFinishLoad のときに、次の JavaScript を挿入して div に含まれるデータを取得しています。

NSString *body = [self.webView1 stringByEvaluatingJavaScriptFromString:
                              @"document.getElementById('social').innerHTML"];

NSLog(@"received data: %@", body);

すべて正常に動作しているようですが、div が空になることもあります!! div が静的であるため div が常に満たされていると仮定すると、ページ全体が読み込まれる前に webViewDidFinishLoad イベントが発生し、javascript がまだ準備ができていない div を探すと考えています。可能?そうでない場合、何か提案はありますか?それを解決する方法は?ありがとうございました。

4

1 に答える 1

2

はい、私は時々webViewDidFinishLoadがあなたがそうすべきだと思う前に解雇されることに気づきました。頭のてっぺんから詳細を思い出せませんが、リダイレクトが関係している可能性があります。

呼び出されたら、ページがまだ読み込まれているかどうかを確認できます。

if (webView.loading)
    return;

または、domがロードされたとき、およびdomがロードを終了したことをコードに通知するカスタムスキームでwebViewShouldStartLoadをトリガーするlocation.hrefテクニックを使用したときに、イベントリスナーを登録するjavascript関数を使用できます。

于 2012-05-26T22:19:23.107 に答える