Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menghantar Pembolehubah dengan Betul ke Fungsi `page.evaluate()` Puppeteer?

Bagaimana untuk Menghantar Pembolehubah dengan Betul ke Fungsi `page.evaluate()` Puppeteer?

Mary-Kate Olsen
Lepaskan: 2024-12-27 20:22:10
asal
262 orang telah melayarinya

How to Correctly Pass Variables to Puppeteer's `page.evaluate()` Function?

Melalukan Pembolehubah ke dalam halaman Puppeteer.evaluate() Function

Dalam Puppeteer, fungsi page.evaluate() membenarkan anda untuk melaksanakan JavaScript tersuai pada halaman web dalam pelayar. Walau bagaimanapun, cara untuk menghantar pembolehubah daripada Node ke fungsi page.evaluate() tidak jelas untuk digunakan dalam kod yang dinilai.

Apabila cuba menghantar pembolehubah, pendekatan biasa ialah menggunakan sintaks fungsi anak panah :

const links = await page.evaluate((evalVar) => {...});
Salin selepas log masuk

Walau bagaimanapun, jika anda menghadapi ralat bahawa evalVar tidak ditentukan dalam fungsi anak panah, ini bermakna pembolehubah tidak dihantar ke dalam fungsi dengan betul.

Untuk menyelesaikan isu ini, pembolehubah mesti dihantar sebagai hujah kepada fungsi halaman. Sintaks yang dilaraskan ialah:

const links = await page.evaluate((evalVar) => {...}, evalVar);  // 1. pass variable as an argument
Salin selepas log masuk

Di sini, pembolehubah evalVar dihantar sebagai argumen tambahan kepada fungsi anak panah, menjadikannya boleh diakses dalam kod yang dinilai.

Teknik ini berfungsi untuk menghantar berbilang pembolehubah juga. Hanya tambahkan lebih banyak argumen pada panggilan fungsi page.evaluate():

await page.evaluate((a, b, c) => { console.log(a, b, c) }, a, b, c)
Salin selepas log masuk

Adalah penting untuk memastikan argumen yang diluluskan sama ada boleh bersiri sebagai JSON atau JSHandles objek dalam penyemak imbas, kerana ini adalah yang disokong jenis untuk menghantar pembolehubah ke page.evaluate().

Atas ialah kandungan terperinci Bagaimana untuk Menghantar Pembolehubah dengan Betul ke Fungsi `page.evaluate()` Puppeteer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan