2010-11-30 2 views
5

Je crée une extension Firefox qui nécessite la connexion de l'utilisateur. Chaque fois qu'une nouvelle fenêtre, mais pas un nouvel onglet est ouvert, le «code» de l'extension est exécuté. Je préférerais que le code ne soit exécuté qu'une seule fois par session.Seul le code d'extension Firefox est exécuté une fois par session

La configuration de l'extension ressemble à ceci. (Laissez-moi savoir si je suis absent quelque chose):

dans le manifeste chrome: overlay chrome://browser/content/browser.xul chrome://my/overlay.xul

dans overlay.xul:
<overlay id="socialSidebarOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://my/code.js" />
</overlay>

dans code.js:
alert('being called')

T Le problème est que "être appelé" ne devrait être affiché que lorsque Firefox démarre, pas quand de nouveaux onglets ou fenêtres sont ouverts. Quel serait un moyen d'accomplir cela?

Répondre

3

Vous pouvez utiliser un JavaScript code module pour vous assurer que votre code est exécutée une seule fois.

+0

Merci !!!! Ceci est exactement ce que je cherchais. Le module JSM est seulement chargé une fois même après que les onglets et les nouvelles fenêtres soient ouvertes :) – Alexis

1

Vous pouvez observer (et agir) l'un des possibles Mozilla Observer Notifications

Soit agir réellement sur quelque chose lors du démarrage, ou en vous vérifier d'extension pour une valeur particulière qui est remis à zéro lorsque le navigateur se ferme [ce peut être difficile, car les fermetures anormales peuvent ne pas être réinitialisées].

Voir aussi: Receiving Startup Notifications

Questions connexes