Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengakses Pembolehubah Global daripada Skrip Kandungan dalam Sambungan Chrome?
Mengakses Pembolehubah Global daripada Skrip Kandungan dalam Sambungan Chrome
Walaupun cubaan untuk mendapatkan pembolehubah GLOBALS daripada mesej Gmail semasa melalui jQuery.load( ) dalam skrip kandungan, ralat berterusan disebabkan pengasingan.
Penyelesaian: Suntikan Skrip dan Pendengar Acara
Untuk mengakses sifat global tetingkap halaman, pertimbangkan untuk menggunakan:
var s = document.createElement('script'); s.src = chrome.extension.getURL('script.js'); (document.head||document.documentElement).appendChild(s);
Setelah skrip dimuatkan, keluarkannya untuk kebersihan:
s.onload = function() { s.remove(); };
document.addEventListener('RW759_connectExtension', function(e) { // e.detail contains transferred data, e.g., GLOBALS });
Kod Contoh:
contentscript.js (Jalankan di document_end):
// Inject script var s = document.createElement('script'); s.src = chrome.extension.getURL('script.js'); (document.head||document.documentElement).appendChild(s); // Event listener document.addEventListener('RW759_connectExtension', function(e) { alert(e.detail); // Access GLOBALS });
script.js ("run_at": "document_end" dalam manifes):
setTimeout(function() { document.dispatchEvent(new CustomEvent('RW759_connectExtension', { detail: GLOBALS // Send data })); }, 0);
Ingat untuk menambah "script.js" pada bahagian web_accessible_resources dalam fail manifes.
Amalan Terbaik:
Minimumkan logik dalam suntikan skrip dan mengendalikan kebanyakan pemprosesan dalam skrip kandungan untuk memastikan kebolehpercayaan sambungan dan akses kepada ciri tambahan seperti chrome.* API.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pembolehubah Global daripada Skrip Kandungan dalam Sambungan Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!