Jika saya menelepon console.log('something');
dari halaman popup, atau skrip apa pun yang disertakan berfungsi dengan baik.
Namun karena halaman latar belakang tidak secara langsung keluar dari halaman popup itu tidak termasuk dalam konsol.
Apakah ada cara yang bisa saya dapatkan console.log()
di halaman latar belakang untuk muncul di konsol untuk halaman popup?
apakah ada cara untuk, dari halaman latar belakang memanggil fungsi di halaman popup?
Jawaban:
Setiap halaman ekstensi (kecuali skrip konten ) memiliki akses langsung ke halaman latar belakang via
chrome.extension.getBackgroundPage()
.Itu berarti, di dalam halaman popup , Anda bisa melakukan:
Untuk membuatnya lebih mudah digunakan:
Sekarang jika Anda ingin melakukan hal yang sama di dalam skrip konten Anda harus menggunakan Passing Pesan untuk mencapai itu. Alasannya, mereka berdua milik domain yang berbeda, yang masuk akal. Ada banyak contoh di halaman Passing Pesan untuk Anda periksa.
Semoga itu membersihkan segalanya.
sumber
alert()
chrome.extension.getBackgroundPage()
, saya mengertinull
. Apakah saya perlu mengatur perizinan atau konfigurasi lainnya?Anda dapat membuka konsol halaman latar belakang jika Anda mengklik tautan "background.html" di daftar ekstensi.
Untuk mengakses halaman latar belakang yang sesuai dengan ekstensi Anda, buka
Settings / Extensions
atau buka tab baru dan masukkanchrome://extensions
. Anda akan melihat sesuatu seperti tangkapan layar ini.Di bawah ekstensi Anda, klik tautan tersebut
background page
. Ini membuka jendela baru. Untuk sampel menu konteks jendela memiliki judul:_generated_background_page.html
.sumber
Untuk menjawab pertanyaan Anda secara langsung, saat Anda menelepon
console.log("something")
dari latar belakang, pesan ini dicatat, ke konsol halaman latar belakang. Untuk melihatnya, Anda dapat mengunjungichrome://extensions/
dan mengekliknya diinspect view
bawah ekstensi Anda.Ketika Anda mengklik sembulan, itu dimuat ke halaman saat ini, sehingga console.log harus menampilkan pesan log di halaman saat ini.
sumber
Anda masih dapat menggunakan console.log (), tetapi login ke konsol yang terpisah. Untuk melihatnya - klik kanan pada ikon ekstensi dan pilih "Periksa popup".
sumber
Solusi paling sederhana adalah dengan menambahkan kode berikut di bagian atas file. Dan daripada Anda dapat menggunakan semua api konsol Chrome penuh seperti biasa.
sumber
Buka log:
sumber
Coba ini, jika Anda ingin masuk ke konsol halaman aktif:
sumber
Sehubungan dengan pertanyaan awal saya ingin menambahkan jawaban yang diterima oleh Mohamed Mansour bahwa ada juga cara untuk membuat ini bekerja sebaliknya:
Anda dapat mengakses halaman ekstensi lain (yaitu halaman opsi, halaman popup) dari dalam halaman latar belakang / skrip dengan
chrome.extension.getViews()
panggilan. Seperti dijelaskan di sini .sumber
Itu posting lama, dengan jawaban yang sudah bagus, tapi saya menambahkan dua bit saya. Saya tidak suka menggunakan console.log, saya lebih suka menggunakan logger yang masuk ke konsol, atau di mana pun saya mau, jadi saya punya modul yang mendefinisikan fungsi log sedikit seperti ini
Ketika saya memanggil log ("ini log saya"), ia akan menulis pesan di konsol popup dan konsol latar belakang.
Keuntungannya adalah dapat mengubah perilaku log tanpa harus mengubah kode (seperti menonaktifkan log untuk produksi, dll ...)
sumber
Untuk mendapatkan log konsol dari halaman latar belakang, Anda perlu menulis cuplikan kode berikut di background.js halaman latar belakang Anda -
Kemudian muat ekstensi dan periksa halaman latar belakangnya untuk melihat log konsol.
Lanjutkan!!
sumber