Ich arbeite an einer Chrome-Erweiterung, die als internes Tool verwendet werden soll. Das erforderliche Verhalten ist:
- Aktivieren Sie als Seitenaktion ein Adressleistensymbol, wenn Sie bestimmte Intranetseiten anzeigen.
- Wenn der Benutzer auf das Symbol klickt, identifizieren Sie alle Dateien eines bestimmten Medientyps (z. B. .jpg) auf der Seite und
- Speichern Sie sie alle stillschweigend in einem Verzeichnis auf dem lokalen Laufwerk des Benutzers.
Diese Frage wurde bereits gestellt , aber die Antwort lautete damals " NPAPI verwenden ", und NPAPI ist jetzt verfallen .
Was ist der derzeit verfügbare Weg, um dies zu erreichen? Die, die ich mir angesehen habe, sind:
- Die chrome.FileSystem- API --- speichert jedoch keine Dateien an einem für Benutzer zugänglichen Ort. Stattdessen werden die gespeicherten Dateien hinter verschleierten Namen in einem undokumentierten Verzeichnis versteckt . Der Benutzer verlangt, dass die Dateien unter ihrem ursprünglichen Namen in einem zugänglichen Verzeichnis gespeichert werden.
- Das HTML5-Download-Attribut , indem Sie eine Daten-URL erstellen und programmgesteuert darauf klicken. Daraufhin wird für jede Datei ein Dialogfeld "Speichern unter ..." angezeigt, das nicht akzeptabel ist, wenn sich auf einer Seite hundert Assets befinden. Der Benutzer verlangt, dass die Dateien ohne weitere Interaktion über den einzelnen Symbolklick hinaus heruntergeladen werden.
- Die Chrome Download API , die jedoch nur in den Beta- und Entwicklerkanälen verfügbar ist. Benutzer benötigt diese Erweiterungsarbeit mit Mainstream-Chrome.
- Verwenden Sie die native Messaging-API, indem Sie eine kleine EXE-Datei erstellen, die einfach eine Datei auf der Festplatte speichert, und die JPG-Datei dann als Blob an diese übergeben. Dies scheint sehr umständlich zu sein und ich bin mir nicht einmal sicher, wie ich große Blobs zuverlässig an solche EXEs weitergeben kann.
Gibt es einen anderen Ansatz, den ich ausprobieren kann?