PhantomJS ユーザーが、完全にロードされた Web ページのキャプチャを妨げる onLoadFinished コールバックの途中で起動に遭遇した場合は、次の解決策を検討できます。
この問題は、マイナーなコンテンツが非同期で読み込まれ、PhantomJS がページの完了を検出できない場合に発生します。これに対処するには、遅延メカニズムの実装を検討してください。
page.open(address, function (status) { if (status !== 'success') { console.log('Unable to load the address!'); phantom.exit(); } else { window.setTimeout(function () { page.render(output); phantom.exit(); }, 1000); // Change timeout as required to allow sufficient time } });
ページの読み込みとレンダリングの間にタイムアウトを導入することで、PhantomJS には追加のリソースが読み込まれるのを待つ十分な時間が与えられます。タイムアウト値を調整して、スクリーンショットをキャプチャする前にページが完全に読み込まれるのに十分な時間を確保します。これにより、広告を含む動的要素を正確に表現できるようになります。
以上が非同期ページ読み込み中に PhantomJS の `onLoadFinished` コールバックが途中で起動しないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。