Ich werde eine Firefox-Erweiterung entwickeln, die eine Schaltfläche in die geladenen Seiten einfügen soll, wenn das Tag: <input type="file" ... >
gefunden wird und eine Datei ausgewählt wurde.So fügen Sie Elemente aus der Firefox-Erweiterung
Ähnlich verhält es sich mit der skype-Symbolleiste: Wenn eine Website eine Telefonnummer enthält, wandelt sie die Skype-Erweiterung automatisch in eine Schaltfläche um, über die Skype-Kontakte angerufen werden können.
Ich bin auf einem GNU/Linux-System, und leider ist die Skype-Erweiterung funktioniert nicht auf Linux-Versionen von Firefox/skype, also kann ich nicht einmal versuchen, etwas Reverse Engineering ...
Die firefox Erweiterung enthält die Datei overlay.js: Diese Datei enthält die Hauptlogik für die Erweiterung. Hier kann ich <input type="file" ... >
Knoten einfach mit diesem Code finden:
onFileChosen: function(aEvent) {
var input = aEvent.explicitOriginalTarget;
if(input.type=="file"){
alert(input.value); }
}
window.addEventListener("change", function(e) {xpitest.onFileChosen(e)},false);
Also, wenn eine Datei ausgewählt wurde, ein Alarm-Fenster erscheint und zeigt die Dateinamen.
Aber, wie kann ich einen Knopf in der Seite setzen, wenn eine Datei gewählt worden ist?
Ich habe versucht mit den verschiedenen document.parentNode und ähnliche, aber nichts scheint zu funktionieren.
Oder ist es möglich, dass ich Sachen in die geladene Seite nicht setzen kann?
Dank
Das geht mit Crossrider ganz schnell und einfach. Verwenden Sie einfach die integrierte jQuery-Unterstützung und binden Sie das Ereignis onchange für $ jquery ("input [type = file]"). Crossrider erstellt für Ihre crx, xpi und exe Erweiterungsdateien für Ihre Cross-Browser-Erweiterung. – shdev