Pengguna PhantomJS yang menghadapi penembakan pramatang panggilan balik onLoadFinished, menghalang penangkapan halaman web yang dimuatkan sepenuhnya, boleh mempertimbangkan penyelesaian berikut.
Isu ini timbul apabila kandungan kecil dimuatkan secara tidak segerak, menghalang PhantomJS daripada mengesan penyiapan halaman. Untuk menangani perkara ini, pertimbangkan untuk melaksanakan mekanisme kelewatan:
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 } });
Dengan memperkenalkan tamat masa antara pemuatan halaman dan pemaparan, PhantomJS diberi masa yang mencukupi untuk menunggu sumber tambahan dimuatkan. Laraskan nilai tamat masa untuk memastikan masa yang mencukupi untuk memuatkan halaman lengkap sebelum menangkap tangkapan skrin. Ini membolehkan perwakilan tepat unsur dinamik, termasuk iklan.
Atas ialah kandungan terperinci Bagaimana untuk Menghalang Panggilan Balik `onLoadFinished` PhantomJS daripada Dicetuskan Lebih Awal Semasa Pemuatan Halaman Asynchronous?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!