PhantomJS 使用者遇到過早觸發 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中文網其他相關文章!