Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menghantar Mesej dari Latar Belakang ke Skrip yang Disuntik dengan Berkesan?
Pengenalan
Artikel ini menangani cabaran menghantar mesej daripada skrip latar belakang ke skrip kandungan dan kemudian ke skrip yang disuntik. Walaupun mengikut pendekatan biasa, proses penghantaran mesej terhenti di peringkat latar belakang ke skrip kandungan.
Puncanya terletak pada mekanisme suntikan skrip kandungan. Bertentangan dengan jangkaan, Chrome tidak secara automatik menyuntik skrip kandungan ke dalam tab sedia ada apabila sambungan (semula) dimuatkan. Akibatnya, apabila skrip latar belakang cuba menghantar mesej ke tab semasa, tiada pendengar tersedia untuk menerimanya.
Penyelesaian 1: Suntikan Bersyarat dengan ' ensureSendMessage'
Kaedah ini melibatkan ping tab terlebih dahulu untuk menyemak sama ada ia bersedia untuk menerima mesej. Jika tidak, skrip kandungan disuntik secara pengaturcaraan, membolehkannya menerima dan membalas mesej daripada skrip latar belakang.
Penyelesaian 2: Suntikan pada Permulaan
Pendekatan alternatif adalah dengan hanya menyuntik skrip kandungan secara sembarangan pada beban sambungan. Ini selamat jika kod skrip boleh mengendalikan berjalan beberapa kali atau selepas halaman dimuatkan sepenuhnya.
Penyelesaian 3: Suntikan Terpilih melalui Tindakan Penyemak Imbas
Untuk kes di mana mesej penghantaran harus berlaku pada tindakan pengguna tertentu, tindakan penyemak imbas boleh digunakan. Dengan membungkus kod penghantaran mesej dalam pendengar onClicked, suntikan dan komunikasi berlaku hanya apabila pengguna mencetuskan tindakan penyemak imbas secara eksplisit.
Akhir sekali, adalah penting untuk menangani masalah potensi isu dengan skrip kandungan yatim yang berterusan selepas pelanjutan dimuatkan semula. Skrip ini mungkin mengganggu pelaksanaan yang betul bagi contoh yang baru disuntik. Untuk mengurangkan perkara ini, skrip kandungan boleh melaksanakan mekanisme degupan jantung untuk mengesahkan status aktifnya dengan skrip latar belakang. Hanya selepas menerima pengakuan positif dari latar belakang, skrip kandungan harus melaksanakan tindakan atau memproses peristiwa halaman.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Mesej dari Latar Belakang ke Skrip yang Disuntik dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!