Dans mon extension Web, j'ajoute plusieurs des mêmes écouteurs aux différents identifiants d'onglets en fonction de ce que l'utilisateur dit à l'extension de faire.
browser.webRequest.onBeforeRequest.addListener(mycallback, {urls: ["myurl"], tabId: varyingtabid},["blocking"]);
webRequest supprimer un écouteur attaché à un tabId
Mais quand je dois nettoyer un écouteur pour un onglet, je ne sais pas comment spécifier quel auditeur, la documentation dit removeListener ne prend qu'un seul paramètre qui est le rappel.
browser.webRequest.onBeforeRequest.removeListener(mycallback); //does this remove every listener, what does this do when there are multiple listeners?
Est-il possible de créer dynamiquement différentes références de fonction à une fonction et d'utiliser cette référence comme rappel de l'écouteur? J'ai essayé d'utiliser un objet qui ne fonctionnait pas lors de la création de l'écouteur. – regularjoe
En supposant que 'foo()' est une fonction globale/persistante, vous pouvez simplement utiliser un wrapper: function() {return foo.apply (this, arguments); } – wOxxOm