2009-12-15 12 views
5

Mi piacerebbe sviluppare un'estensione per Firefox che fa cose quando un clic del collegamento apre una nuova scheda come risultato degli attributi del collegamento e anche quando il pulsante "Indietro" (o equivalente) viene premuto.Agganciare "Apri in una nuova scheda" e "Indietro"

Come posso collegare queste due cose in un'estensione?

Aggiornamento: Ho iniziato una taglia - Spero che la risposta possa portare a qualche sito di documentazione nascosta per gli add-on di Firefox. Un sito che non è la base di codici di Firefox, cioè. E non una raccolta di tutte le estensioni mai scritte.

+0

https: // sviluppatore.mozilla.org/en/XUL – moonshadow

+0

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

+0

Chrome è davvero XHTML. Comunque buona fortuna nel trovare una risposta, non ho abbastanza esperienza con le estensioni per dirti davvero. – MindStalker

risposta

2

Proverò a rispondere ea darvi alcune tracce, ma sappiate che può dipendere dal numero di versione di Firefox (so che non state cercando la pagina MDC, e so che non è sempre ben documentato, ma ecco cosa ho trovato).

  • Nuova scheda: è necessario add an eventListener in alcune funzioni di inizializzazione e fa riferimento all'azione che si desidera chiamare. In questo modo non ti devi preoccupare di come è stata chiamata la nuova scheda
  • Rileva pulsante Indietro premuto: (nuova funzione da Firefox 3.5) add a progress listener on all tabs per rilevare una posizioneCambia, quindi giocare con "Luoghi" il nuovo sistema di cronologia (dal Firefox 3) per confrontare e vedere se il nuovo URI è uguale a quello precedente. Non dimenticare che puoi tornare indietro con "Del" o "Alt" + "LeftArrow" in modo da non poter realmente implementare nuovamente l'azione del pulsante Indietro (altrimenti potresti aggiungere una sovrapposizione XUL e ridefinire ciò che ti serve, ma io non l'ho mai fatto prima)
+0

La cosa che devo fare è catturare il browser dopo aver realizzato che deve tornare indietro (sia dal pulsante indietro, alt-left o Del), ma prima che tenti di tornare indietro. – Arkadiy

+0

Hmm non sono sicuro che sarà possibile senza una soluzione complicata. Non posso aiutarti di più, ma potresti trovare aiuto su irc.mozilla.org, dove gli sviluppatori di mozilla parlano di difficoltà e altro (forse non è il periodo migliore). – Baztoune

2

Mi sembra che tu voglia evitare di usare l'ascoltatore di progresso perché vuoi essere in grado di reagire anche quando non ci sono pagine a cui tornare.

Se questo è il caso, hai provato a sostituire la nuova scheda con un URL temporaneo di qualche tipo?

Per spiegare cosa intendo:

  1. clic utente apre nuova scheda per http://www.google.com
  2. Redirect a http://cannotwork/?http://www.google.com
  3. Salva come location
  4. Su ogni richiesta di http://cannotwork/ spedire posizione integrato

Proprio come buttare via le idee qui. In bocca al lupo.

Inoltre è disponibile un addon per le versioni precedenti di FF, che ha sostituito il pulsante Indietro con la chiusura quando si era in "start". Potrebbe essere una buona idea per anoter. L'unico problema era che non poteva catturare del/back sul mouse. Quindi ha consigliato di reimpostare il pulsante del mouse su Alt + Sinistra (che è stato catturato).

+0

Penso che https://addons.mozilla.org/en-US/firefox/addon/939/ sia quello a cui ti riferisci? – MatrixFrog

1

Sembra che sia possibile implementare l'interfaccia nsISHistoryListener per essere avvisati quando l'utente tenta di tornare indietro.

OnHistoryGoBack

notifica un ascoltatore quando l'utente preme il tasto 'back' del browser o quando l'utente tenta di andare indietro di una pagina nella storia attraverso altri mezzi, sia attraverso script o utilizzando nsIWebNavigation.

Problemi correlati