Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengakses Pembolehubah Global dalam Mesej Gmail Menggunakan Sambungan Chrome?

Bagaimanakah Saya Boleh Mengakses Pembolehubah Global dalam Mesej Gmail Menggunakan Sambungan Chrome?

DDD
DDDasal
2024-10-26 06:56:02622semak imbas

How Can I Access Global Variables in Gmail Messages Using a Chrome Extension?

Mengakses Pembolehubah Global dalam Mesej Gmail dengan Sambungan Chrome

Pengenalan

Mencipta sambungan Chrome boleh memperkasakan anda dengan keupayaan untuk mengubah suai gelagat halaman web. Satu keperluan sedemikian ialah untuk mendapatkan semula pembolehubah global daripada halaman, seperti pembolehubah GLOBALS dalam mesej Gmail.

Isunya

Malangnya, skrip kandungan dijalankan dalam persekitaran terpencil, menghalang akses terus ke halaman sifat tetingkap seperti GLOBALS. Fungsi .load() jQuery gagal mendapatkannya, mengakibatkan ReferenceErrors. Ini berlaku walaupun dapat mengakses GLOBALS melalui konsol alat pembangun.

Penyelesaian: Komunikasi Merentas Konteks

Untuk merapatkan jurang komunikasi ini, anda boleh menggunakan salah satu daripada dua kaedah:

1. Suntikan Skrip:

Suntikan elemen skrip baharu ke dalam konteks halaman. Skrip ini boleh mendapatkan semula data yang diingini dan menyerahkannya kembali kepada skrip kandungan.

2. Pendengar Acara:

Gunakan pendengar acara untuk menghantar data antara halaman dan skrip kandungan. Skrip kandungan boleh mendengar acara tersuai yang dicetuskan oleh skrip halaman dengan maklumat yang dikehendaki.

Contoh Pelaksanaan Menggunakan Suntikan Skrip

Skrip Kandungan (run_at: "document_end"):

<code class="js">var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head || document.documentElement).appendChild(s);
s.onload = function() {
    s.remove();
};</code>

Script.js (Skrip Disuntik):

<code class="js">setTimeout(function() {
    document.dispatchEvent(new CustomEvent('RW759_connectExtension', {
        detail: GLOBALS
    }));
}, 0);</code>

Pertimbangan

  • Pastikan "script.js" adalah ditambahkan pada bahagian web_accessible_resources pada fail manifes.
  • Skrip kandungan harus mengendalikan sebahagian besar logik, kerana ia mempunyai akses kepada ciri tambahan yang tidak tersedia dalam skrip yang disuntik.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Pembolehubah Global dalam Mesej Gmail Menggunakan Sambungan Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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