Raison de l'erreur Uncaught: Tentative d'utilisation d'un objet port déconnecté
J'obtiens cette erreur dans la page d'arrière-plan lors de la réponse à la demande
à partir du contenu du script.
Personne ne sait ce qui peut être la cause de cette erreur?
Full stack trace:
Uncaught Error: Attempting to use a disconnected port object chrome/RendererExtensionBindings:147
chrome.Port.postMessage chrome/RendererExtensionBindings:147
chromeHidden.Port.dispatchOnConnect.connectEvent chrome/RendererExtensionBindings:89
myExtension.foo.sendResponse.state background.js:1573
db.readTransaction.tx.executeSql.paramStr background.js:1038
Cela se produit uniquement après quelques heures de navigation de rechargement extension n'est pas d'aider - pas que ce serait une solution après avoir redémarré le navigateur google chrome, tout revient à la normale pour un couple d'heures de contenu script peut continuer à envoyer des demande d'arrière-plan, mais PAS de réponse
d'arrière-plan peut être envoyé en arrière Est-il possible que je puisse attraper cette erreur non Interceptée et de réinitialisation de l'auditeur?
Je suis en utilisant google chrome.l'extension.surdemande.addListener pour ma communication. Avant de répondre j'ai une requête DB et je n'ai pas envoyer n'importe quel autre réponse avant de la requête est terminée.
Grâce,
Marek
source d'informationauteur Marek
Vous devez vous connecter pour publier un commentaire.
Ceci est causé quand une connexion est fermé. Par exemple, si vous ouvrez un onglet qui a le content_script injecté, il ouvre une connexion, la fermeture de l'onglet, puis le background_page essaie de faire passer un message. Il va échouer parce que l'onglet n'est plus actif à recevoir le message.
Dans votre cas, je suppose que comme des onglets à proximité et les nouveaux onglets s'ouvrent vous essayez de publier des messages avec l'ancien tabId au lieu de créer une nouvelle connexion de l'onglet nouveau. Je recommande la lecture par le biais de la longue durée de vie des connexions section de nouveau.
Dans mon cas, cependant, j'avais besoin de fournir à l'sendResponse de fonction pour le chrome.moment de l'exécution.sendMessage(msg, responseCallbackMissingHere), qui vous donnera la "Tentative d'utilisation d'un port déconnecté de l'objet" d'erreur.