9 Stimmen

Liste ein lokales Verzeichnis mit Chrome-Erweiterung

Ich versuche, eine Chrome-Erweiterung zu erstellen, die ein lokales Verzeichnis nach neuen Dateien durchsucht ... Wenn ich jedoch die Berechtigung file://* zur Manifestdatei hinzufüge, kann ich auf den internen Dateibrowser von Chrome zugreifen

xmlhttp.open("GET","file://C:/Users/Benutzername/Desktop/",false); xmlhttp.send(); console.log(xmlhttp.response);

Aus der Antwort könnte ich die Datei-URLs extrahieren und in meiner Erweiterung verwenden.

Meine Frage lautet nun: Gibt es andere Ansätze? Der oben beschriebene Weg scheint eher wie ein Workaround und bricht leicht, wenn der Dateibrowser von Chrome geändert wird ...

7voto

Brad Punkte 151817

Jedes Mal, wenn ich etwas auf dem lokalen Computer mit einer Chrome-Erweiterung erledigen musste, habe ich immer ein kleines Programm erstellt, das Verbindungen über HTTP akzeptiert und die Arbeit als normales Programm erledigt, Befehle mit JSON über POST entgegennimmt. Dies gibt Ihnen eine große Flexibilität, da es Ihnen im Grunde erlaubt, eine Chrome-Erweiterung zu schreiben, die alles kann, was ein Desktop-Programm kann.

Es gibt jedoch auch erhebliche Nachteile dabei und Sie sollten es nur tun, wenn es unbedingt erforderlich ist. Zum Beispiel:

  • Sie können dies nicht für alle Betriebssysteme tun, es sei denn, Sie schreiben einen Agenten für jedes Betriebssystem.
  • Die Erweiterung kann nicht aus Googles Erweiterungshosting installiert werden.
  • Sie müssen Ihr eigenes Installationsprogramm schreiben, das die Erweiterung registriert.
  • Es gibt sehr reale Sicherheitsaspekte, über die Sie sich Sorgen machen müssen. Sie werden einen Webservice öffnen, der Befehle ausführt. Stellen Sie sicher, dass Sie den Benutzer nicht gefährden. In Wirklichkeit, wenn Sie einen Dateibrowser erstellen, sind Sie wahrscheinlich dabei, den Benutzer zu gefährden. Es liegt an Ihnen, dieses Sicherheitsrisiko zu beheben, als ob Sie jeden anderen Webservice erstellen würden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X