2009-12-15 20 views
5

Me gustaría desarrollar una extensión de Firefox que hace cosas cuando un clic de enlace abre una nueva pestaña como resultado de los atributos del enlace, y también cuando el botón "Atrás" (o equivalente) es presionada.Enganche "Abrir en nueva pestaña" y "Atrás"

¿Cómo puedo enganchar estas dos cosas en una extensión?

Actualización: He comenzado una recompensa: espero que la respuesta pueda conducir a algún sitio oculto de documentación para Complementos de Firefox. Un sitio que no es la base de código de Firefox, es decir. Y no una colección de todas las extensiones escritas.

+0

https: // desarrollador.mozilla.org/es/XUL – moonshadow

+0

https://developer.mozilla.org/En/XUL_Tutorial/Introduction_to_XBL – moonshadow

+0

Chrome es solo XHTML realmente. De todos modos, buena suerte para encontrar una respuesta, no tengo suficiente experiencia con las extensiones para decirte realmente. – MindStalker

Respuesta

2

voy a tratar de responder y darle algunas pistas, pero tenga en cuenta que puede depender de su número de versión de Firefox (Sé que no está buscando la página MDC, y yo sé que no es siempre bien documentado, pero esto es lo que encontré).

  • Nueva pestaña: tienes que add an eventListener de alguna función de inicialización, y la referencia a la acción que desea llamar. De esta manera, no tiene que preocuparse por cómo se llamó a la nueva pestaña
  • Botón Detectar Atrás: (nueva característica desde Firefox 3.5) add a progress listener on all tabs para detectar una ubicaciónCambiar, y luego jugar con "Lugares" el nuevo sistema de historial (desde Firefox 3) para comparar y ver si el nuevo URI es el mismo que el anterior. No olvides que puedes volver con "Supr" o "Alt" + "Flecha izquierda", así que no puedes volver a implementar la acción del Botón Atrás (de lo contrario podrías agregar una superposición XUL y redefinir lo que necesitas, pero yo ' nunca lo había hecho antes)
+0

Lo que necesito hacer es capturar el navegador después de que se da cuenta de que necesita volver atrás (ya sea desde el botón Atrás, alt-left o Del) pero antes de que realmente intente retroceder. – Arkadiy

+0

Hmm no estoy seguro de que sea posible sin alguna solución complicada. Creo que no puedo ayudarlo más, pero podría encontrar ayuda en irc.mozilla.org, donde los desarrolladores de Mozilla hablan sobre las dificultades y otras (tal vez no sea el mejor período). – Baztoune

2

Me parece que desea evitar el uso del oyente de progreso porque desea poder reaccionar incluso cuando no hay una página a la que regresar.

Si este es el caso, ¿ha intentado reemplazar la nueva pestaña con una URL temporal de algún tipo?

Para explicar lo que quiero decir:

  1. El usuario hace clic se abre una nueva pestaña a http://www.google.com
  2. Redirigir a http://cannotwork/?http://www.google.com
  3. Guardar como localización
  4. En cualquier solicitud de http://cannotwork/ enviar a la ubicación complementado

Solo como echar ideas aquí. Buena suerte.

También hay un complemento Back to Close para versiones anteriores de FF, que reemplazó el botón ATRÁS con cierre cuando estaba en el "inicio". Puede ser otra idea decente. El único problema era que no podía coger del/atrás en el mouse. Por lo tanto, recomendó volver a vincular el botón del mouse a Alt + Izquierda (que fue capturado).

+0

Creo que https://addons.mozilla.org/en-US/firefox/addon/939/ es a lo que te refieres? – MatrixFrog

1

Parece que puede implementar la interfaz nsISHistoryListener para recibir notificaciones cuando el usuario intente regresar.

OnHistoryGoBack

notifica a un oyente cuando el usuario presiona el botón 'atrás' del navegador o cuando el usuario intenta volver atrás una página en la historia a través de otros medios, ya sea a través de secuencias de comandos o mediante el uso de nsIWebNavigation.

Cuestiones relacionadas