Pergunta

Eu estou indo para desenvolver uma extensão do Firefox que deve colocar um botão nas páginas carregadas, quando o tag:. <input type="file" ... > é encontrado e um arquivo foi selecionado

Da mesma forma, eu acho que a barra de ferramentas Skype faz uma coisa semelhante:. Quando um site contém um número de telefone, a extensão Skype converte automaticamente em um botão que pode ser clicado para contatos chamada Skype

Eu estou em um sistema GNU / Linux, e, infelizmente, a extensão skype não funciona em versões Linux do Firefox / skype, então eu não posso sequer tentar fazer engenharia reversa nada ...

A extensão firefox contém os overlay.js de arquivo: Este arquivo contém a lógica principal para a extensão. Aqui eu posso encontrar nós <input type="file" ... > simplesmente com este código:

onFileChosen: function(aEvent) {
var input = aEvent.explicitOriginalTarget; 
if(input.type=="file"){
    alert(input.value); }
}

window.addEventListener("change", function(e) {xpitest.onFileChosen(e)},false);

Assim, quando um arquivo foi escolhido, um alerta será exibida a janela e mostra o nome do arquivo.

Mas, como posso colocar um botão na página quando um arquivo foi escolhido?

Eu tenho tentado com os vários document.parentNode e similares, mas nada parece funcionar.

Ou é possível que eu não posso colocar coisas na página carregada?

Graças

Foi útil?

Solução

A partir do contexto cromo, você pode obter o documento de conteúdo atual (por exemplo, a página com o seletor de arquivos) usando top.window.content.document. Nesse ponto, é apenas como seu JS está em execução na página. Se isso não ajudar, por favor poste seu código com tanta informação quanto possível. Veja também trabalhar com janelas em cromo código .

E você definitivamente pode injetar coisas na página.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top