Maison > Article > interface Web > Comment résoudre les problèmes de communication causés par les scripts orphelins dans les extensions Chrome ?
Dépannage des scripts orphelins dans les extensions Chrome
La récupération après le rechargement accidentel d'une extension Chrome peut entraîner des scripts orphelins, entraînant des problèmes de communication entre le contenu script et d’autres parties de l’extension. Voici une solution pour supprimer le script orphelin et restaurer le bon fonctionnement :
Tuer le script orphelin
Le script de contenu orphelin peut toujours recevoir des messages DOM. Envoyez un message de votre nouveau script de contenu fonctionnel au script de contenu fantôme via l'objet window. À la réception du message, le script orphelin doit :
Dans le contenu. js :
<code class="javascript">var orphanMessageId = chrome.runtime.id + 'orphanCheck'; window.dispatchEvent(new Event(orphanMessageId)); window.addEventListener(orphanMessageId, unregisterOrphan); // ... Register event listeners with named functions to preserve their references function unregisterOrphan() { // ... Unregister listeners and remove global variables }</code>
Assurer le script de contenu Injection
Pour éviter d'envoyer des messages à un script orphelin, votre popup.js doit vérifier si un script de contenu en direct est en cours d'exécution avant d'envoyer des messages :
<code class="javascript">async function sendMessage(data) { const [tab] = await chrome.tabs.query({ active: true, currentWindow: true }); if (await ensureContentScript(tab.id)) { return await chrome.tabs.sendMessage(tab.id, data); } } async function ensureContentScript(tabId) { // ... Check if content script is running and inject it if not }</code>
En mettant en œuvre ces mesures, vous pouvez supprimer efficacement les scripts orphelins, éviter les problèmes de communication et restaurer les fonctionnalités de votre extension Chrome.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!