Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Mengakses Pembolehubah Global daripada Gmail Dalam Skrip Kandungan Sambungan Chrome?

Bagaimanakah Saya Boleh Mengakses Pembolehubah Global daripada Gmail Dalam Skrip Kandungan Sambungan Chrome?

Barbara Streisand
Barbara Streisandasal
2024-10-27 02:21:03735semak imbas

How Can I Access Global Variables from Gmail Within a Chrome Extension Content Script?

Mengakses Pembolehubah Global dalam Gmail daripada Skrip Kandungan Sambungan Chrome

Pengenalan

Pelanjutan Chrome ialah alatan berkuasa yang boleh mengakses dan meningkatkan kefungsian halaman web. Walau bagaimanapun, mengakses pembolehubah global daripada halaman web dalam skrip kandungan sambungan boleh menjadi mencabar.

Masalah:

Pemaju sambungan mengalami kesukaran untuk mengakses pembolehubah GLOBALS daripada Gmail skrip kandungan. jQuery.load() dan konsol alat pembangun kedua-duanya gagal mendapatkan semula data yang dikehendaki, mengakibatkan mesej ralat.

Penyelesaian:

Skrip kandungan dijalankan dalam persekitaran terpencil yang berasingan daripada halaman web. Untuk mengakses sifat global, seseorang mesti menggunakan salah satu daripada pendekatan berikut:

  1. Menyuntik elemen ke dalam konteks halaman web.
  2. Gunakan pendengar acara untuk menghantar data antara skrip kandungan dan halaman web.

Kaedah Pendengar Acara

  1. Dalam contentscript.js ("run_at" manifes: "document_end"):

    <code class="javascript">var s = document.createElement('script');
    s.src = chrome.extension.getURL('script.js');
    (document.head||document.documentElement).appendChild(s);
    s.onload = function() {
        s.remove();
    };
    
    // Event listener
    document.addEventListener('RW759_connectExtension', function(e) {
        // e.detail contains the transferred data.
        alert(e.detail);
    });</code>
  2. Dalam script.js, yang diletakkan dalam direktori sambungan dan disuntik ke dalam halaman:

    <code class="javascript">setTimeout(function() {
        // Send GLOBALS variable from Gmail to the extension.
        document.dispatchEvent(new CustomEvent('RW759_connectExtension', {
            detail: GLOBALS
        }));
    }, 0);</code>

Pertimbangan:

  • Pastikan bahawa "script.js" disertakan dalam bahagian "web_accessible_resources" pada fail manifes, kerana ia dimuatkan daripada URL sambungan dalam DOM.
  • Minimumkan logik dalam halaman web dan kendalikan kebanyakan operasi dalam skrip kandungan untuk mengelakkan gangguan daripada halaman web dan mengakses ciri khusus.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Pembolehubah Global daripada Gmail Dalam Skrip Kandungan 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