3

これは間違いなく Web ページに関するより一般的な問題ですが、Google コンテンツで簡単に実証できます。

Google のホームページで検索条件を入力すると、結果がwebViewDidFinishLoadメソッドをトリガーしません。色付きの Google ロゴが特集ページにリンクされたアートワークに置き換えられた場合にも、同じ問題が発生します。

javascript または ajax コードが原因でページが完全にロードされていないと思われるので、これを検出する方法はありますか?

4

1 に答える 1

3

これは、Google がこれを行うために AJAX を使用しているためです。webViewDidFinishLoad デリゲート メソッドは、事実上新しいリソースが webview に読み込まれるときに呼び出されます。これは、ブラウザーでのページの読み込みに相当します。Google はこのようなものを AJAX 処理しているため、原因ではありません。そのメソッドがトリガーされます。

ページの一部 (javascript、スタイル シート、または ajax 応答) がいつ読み込まれたかを検出する方法はありません。

あなたができることの1つは、ページの高さを伝えるWebビューでjavascriptの行を実行することです.ページの高さが変わるまで待つことで、結果がいつ発生したかを知ることができます.工夫する必要があります他のいくつか - もちろん、検索クエリが変更されたときのよりスマートなチェックですが、私のアイデアは、最初の Google ロゴ画面から最初の結果ページまで機能します。

その JS を数秒ごとに実行するだけで十分です。

それが役立つことを願っています

于 2012-05-13T01:33:17.643 に答える