Come aggiungere elementi alla pagina Web dall'estensione di Firefox
Domanda
Svilupperò un'estensione di Firefox che dovrebbe mettere un pulsante nelle pagine caricate, quando viene trovato il tag: <input type="file" ... >
ed è stato selezionato un file.
Allo stesso modo, penso che la barra degli strumenti di skype faccia una cosa simile: quando un sito web contiene un numero di telefono, l'estensione di Skype lo converte automaticamente in un pulsante su cui è possibile fare clic per chiamare i contatti di skype.
Sono su un sistema GNU / Linux e sfortunatamente l'estensione skype non funziona su versioni Linux di Firefox / skype, quindi non posso nemmeno provare a decodificare nulla ...
L'estensione firefox contiene il file overlay.js: questo file contiene la logica principale per l'estensione. Qui posso trovare <=> nodi semplicemente con questo codice:
onFileChosen: function(aEvent) {
var input = aEvent.explicitOriginalTarget;
if(input.type=="file"){
alert(input.value); }
}
window.addEventListener("change", function(e) {xpitest.onFileChosen(e)},false);
Quindi, quando è stato scelto un file, appare una finestra di avviso che mostra il nome del file.
Ma come posso inserire un pulsante nella pagina quando è stato scelto un file?
Ho provato con i vari document.parentNode e simili, ma nulla sembra funzionare.
O è possibile che non riesca a inserire elementi nella pagina caricata?
Grazie
Soluzione
Dal contesto di Chrome, è possibile ottenere il documento di contenuto corrente (ad esempio la pagina con il selettore di file) utilizzando top.window.content.document. A quel punto, è proprio come il tuo JS è in esecuzione sulla pagina. Se ciò non aiuta, pubblica il tuo codice con quante più informazioni possibili. Vedi anche Lavorare con Windows in codice Chrome .
E puoi sicuramente iniettare cose nella pagina.