Pourquoi un navigateur d'action par défaut de l'icône reapper après une icône personnalisée a été appliquée?

StackOverflow https://stackoverflow.com//questions/12710061

Question

J'ai un problème étrange avec un navigateur icône d'action dans le navigateur Chrome.Il y a une icône par défaut pour le navigateur d'action défini dans le manifeste.L'icône est affichée correctement.Puis, dans un arrière-plan de la page, sous certaines conditions, je demande:

chrome.browserAction.setIcon({path:"green_32.png", tabId:request.tabId});

Cette icône clignote pendant un moment, et puis devient l'icône par défaut.L'onglet actif et son id passé à setIcon restent les mêmes durant tout le processus.

Quelqu'un peut-il suggérer une idée de pourquoi cela peut se produire?

Était-ce utile?

La solution

La raison pour laquelle l'icône de réinitialisation à l'état par défaut chaque fois, c'est parce que j'ai appelé setIcon avant l'onglet finitions de chargement et obtient "compléter" état.

Je suppose qu'il devrait y avoir quelques informations à ce sujet dans la documentation sur onglets ou sur navigateur actions, mais je n'ai pas trouvé cela:l'icône par défaut est appliqué par la conception d'une page spécifique après qu'il ait fini de charger.J'ai déménagé à l'appel setIcon en tabs.onUpdated gestionnaire, et désormais icône personnalisée persiste.

Cela va à l'encontre de mon ancien compréhension que le navigateur icône d'action est défini pour chaque onglet de base, regarless à une page chargée dans l'onglet et de son état.

@KonradDzwinel gentiment fourni une simple extension de tester le cas (voir les commentaires).J'ai changé son background.js script pour montrer ce comportement:

chrome.browserAction.onClicked.addListener(function(tab)
{
  chrome.browserAction.setIcon({path: 'gfx/icon2.png', tabId: tab.id});
});

Pour reproduire ce comportement, sur n'importe quel onglet, appuyez sur le navigateur icône d'action pour l'obtenir, il a changé.Puis actualisez la page.En conséquence, le navigateur d'action de l'icône de réinitialisation par défaut.

Si ce comportement est expliqué dans la documentation, s'il vous plaît, écrire des commentaires, et je vais mettre à jour la réponse.De ce que j'ai lu jusqu'à présent, j'ai été convaincu que l'icône par défaut est définie pour nouvel onglet au moment de sa création, et ensuite toutes les modifications sont uniquement dans le cadre de l'extension du contrôle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top