Résolution des scripts orphelins après la mise à jour de l'extension Chrome
Problème :
Après le rechargement accidentel d'une extension Chrome, un "runtime. L'erreur lastError" se produit en raison d'un script de contenu "orphelin", entraînant un échec de communication entre la popup et les pages de contenu.
Solution :
Pour résoudre ce problème, vous peut utiliser des messages de fenêtre pour diffuser un signal de votre script de contenu réinjecté vers le script orphelin. Le script orphelin désenregistrera ensuite ses auditeurs, le rendant disponible pour le garbage collection.
Mise en œuvre :
background.js
Implémenter la réinjection du script de contenu sur rechargement/installation de l'extension.
content.js
- Générez un ID de message orphelin unique à l'aide de chrome.runtime.id.
- Diffusez l'événement ID de message orphelin et ajoutez un écouteur d'événement pour le gérer.
- Enregistrez tous les écouteurs avec des fonctions nommées pour préserver les références d'objet.
- Utilisez running = true pour indiquer un script de contenu actif.
unregisterOrphan Function
- Vérifiez si l'extension est active.
- Supprimez l'écouteur de message orphelin et tous les autres écouteurs d'événement.
onMessage Function
- Gérer les messages entrants.
Fonction onMouseMove
- Exécuter la gestion des événements DOM, en vérifiant le statut orphelin avant le traitement.
popup.js
- Assurez-vous qu'un script de contenu est injecté avant d'envoyer des messages.
- Implémentez des fonctions pour vérifier les scripts de contenu actifs et en injecter un si nécessaire.
En suivant ces étapes, vous pouvez supprimer les scripts de contenu orphelins et restaurer la communication entre les composants de votre extension.
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!