2010-11-30 8 views
5

Estoy creando una extensión de Firefox que requiere que el usuario inicie sesión. Cada vez que se abre una nueva ventana, pero no una pestaña nueva, se ejecuta el 'código' de la extensión. Preferiría que el código solo se ejecute una vez por sesión.Solo tengo que ejecutar el código de extensión de Firefox una vez por sesión

La configuración de la extensión tiene este aspecto. (Quiero saber si me falta nada):

de manifiesto chrome: overlay chrome://browser/content/browser.xul chrome://my/overlay.xul

en 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>

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

T El problema es que "ser llamado" debería mostrarse solo cuando se inicia Firefox, no cuando se abren nuevas pestañas o ventanas. ¿Cuál sería una forma de lograr esto?

Respuesta

3

Puede utilizar un JavaScript code module para asegurarse de que el código se ejecuta sólo una vez.

+0

Gracias !!!! Esto es exactamente lo que estaba buscando. El módulo JSM solo se carga una vez, incluso después de abrir las pestañas y las nuevas ventanas :) – Alexis

1

Es posible que desee observar (y actuar sobre) una de las posibles Mozilla Observer Notifications

De cualquier realidad actúan en algo durante el encendido, o en devolver a la salida de extensión para un valor particular que se restablece cuando el navegador se cierra [esto puede ser complicado, ya que las paradas anormales no pueden reiniciarse].

Ver también: Receiving Startup Notifications

Cuestiones relacionadas