Rumah >hujung hadapan web >tutorial js >Mengapakah Saya Mendapat 'Tidak dapat membaca sifat yang tidak ditentukan' Apabila Menggunakan API Chrome dalam Skrip Kandungan?
Mengakses Chrome API dalam Skrip Kandungan: Mengendalikan Ralat "Tidak boleh membaca sifat yang tidak ditentukan"
Apabila cuba menggunakan fungsi API Chrome seperti chrome .tab dalam skrip kandungan, ia boleh mengakibatkan ralat "Tidak boleh membaca sifat yang tidak ditentukan." Ini berlaku walaupun secara eksplisit memasukkan kebenaran yang diperlukan dalam manifes sambungan.
Sekatan pada Skrip Kandungan
Adalah penting untuk memahami bahawa skrip kandungan mempunyai akses terhad kepada fungsi API Chrome. Mereka boleh mengakses subset kaedah API yang berkaitan dengan:
API seperti chrome.tabs biasanya dikhaskan untuk skrip latar belakang, skrip pop timbul dan jenis skrip lain dengan akses yang lebih luas kepada fungsi penyemak imbas.
Penyelesaian: Komunikasi dengan Skrip Latar Belakang
Untuk mengakses fungsi API Chrome tidak tersedia untuk skrip kandungan, anda perlu mewujudkan komunikasi dengan skrip latar belakang. Ini melibatkan:
Berikut ialah contoh pelaksanaan ini penyelesaian:
Skrip Kandungan (myScript.js):
// Send a message to the background script requesting access to chrome.tabs chrome.runtime.sendMessage({ type: "access_tabs" }, response => { // Handle the response from the background script: e.g., display the result });
Skrip Latar Belakang (background.js):
// Background script intercepts the message from the content script chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { if (message.type === "access_tabs") { // Access chrome.tabs API here and send the result back to the sender (content script) sendResponse({ value: chrome.tabs.getCurrent().id }); } });
Dengan melaksanakan mekanisme komunikasi ini, anda boleh meluaskan keupayaan skrip kandungan dan mengakses fungsi API Chrome dengan berkesan yang sebaliknya tidak akan tersedia.
Atas ialah kandungan terperinci Mengapakah Saya Mendapat 'Tidak dapat membaca sifat yang tidak ditentukan' Apabila Menggunakan API Chrome dalam Skrip Kandungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!