Menentukan Status Pemasangan Sambungan Chrome daripada Skrip Luaran
Dalam membangunkan sambungan Chrome yang berinteraksi dengan skrip JavaScript luaran, anda mungkin perlu memastikan sama ada sambungan anda dipasang pada penyemak imbas pengguna. Keupayaan ini membolehkan anda menyesuaikan tingkah laku skrip anda dengan sewajarnya.
Chrome telah memperkenalkan ciri yang membolehkan tapak web luaran berkomunikasi dengan sambungan. Dengan memasukkan kod berikut dalam skrip latar belakang sambungan anda (background.js), anda boleh mewujudkan saluran komunikasi:
chrome.runtime.onMessageExternal.addListener( function(request, sender, sendResponse) { if (request) { if (request.message) { if (request.message == "version") { sendResponse({version: 1.0}); } } } return true; });
Dari tapak web luaran, anda boleh memulakan mesej ke sambungan seperti berikut:
var hasExtension = false; chrome.runtime.sendMessage(extensionId, { message: "version" }, function (reply) { if (reply) { if (reply.version) { if (reply.version >= requiredVersion) { hasExtension = true; } } } else { hasExtension = false; } });
Skrip ini akan menyemak kehadiran sambungan anda dan memberikan nilai kepada pembolehubah hasExtension. Satu-satunya had ialah sifat tak segerak permintaan itu, yang anda perlukan untuk menampung dalam pelaksanaan anda.
Ingat untuk menambah entri pada fail manifest.json sambungan anda untuk menentukan domain yang boleh berkomunikasi dengan itu, menggunakan sintaks berikut:
"externally_connectable": { "matches": ["*://localhost/*", "*://your.domain.com/*"] },
Kemas Kini 2021:
Apabila memanggil chrome.runtime.sendMessage, pengecualian akan dilemparkan jika sambungan tidak dipasang atau kurang upaya. Untuk mengendalikan situasi ini, tambahkan pengesahan berikut dalam panggilan balik sendMessage:
if (chrome.runtime.lastError) { // handle error }
Atas ialah kandungan terperinci Bagaimana untuk Menentukan Status Pemasangan Sambungan Chrome daripada Skrip Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!