Mengakses Pembolehubah Global dalam Gmail daripada Sambungan Chrome
Menggunakan sambungan Gmail selalunya memerlukan akses kepada pembolehubah global daripada mesej semasa yang sedang dilihat. Walau bagaimanapun, ini boleh menimbulkan cabaran kerana persekitaran skrip kandungan yang terpencil.
Untuk mendapatkan semula pembolehubah GLOBALS daripada halaman web Gmail, anda tidak boleh menggunakan jQuery.load() sahaja. Sebaliknya, anda mesti sama ada menyuntik
Menyuntik Elemen Skrip
Dengan menyuntik
<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(); };</code>
Skrip yang disuntik (script.js) kemudiannya akan mengandungi:
<code class="javascript">setTimeout(function() { // Send `GLOBALS` to the extension document.dispatchEvent(new CustomEvent('RW759_connectExtension', { detail: GLOBALS })); }, 0);</code>
Menggunakan Pendengar Acara
Sebagai alternatif, anda boleh menggunakan pendengar acara untuk menghantar data antara halaman dan sambungan. Skrip kandungan akan mendengar peristiwa yang dicetuskan oleh skrip yang disuntik, seperti berikut:
<code class="javascript">// Event listener in contentscript.js document.addEventListener('RW759_connectExtension', function(e) { // e.detail contains the transferred data (GLOBALS) alert(e.detail); });</code>
Ingat untuk memasukkan script.js dalam bahagian web_accessible_resources pada fail manifes anda untuk membenarkan Chrome memuatkannya.
Amalan Terbaik
Pastikan logik anda dalam skrip kandungan pada tahap minimum dan fokus pada pengendalian data. Ini membantu melindungi sambungan anda daripada pengubahsuaian atau pepijat dalam kod halaman web dan memberi anda akses kepada ciri dipertingkat yang disediakan oleh skrip kandungan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengakses pembolehubah global dalam Gmail daripada sambungan Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!