Wie bekomme ich die URL für ein gefiltertes Bild mit einem Chrom userscript?

In der folgenden Chrom-Benutzer-Skript, wie kann ich eine url für ein Bild, das ich ziehen Sie von meinem desktop?
Dort habe ich die debugger line, ich bin immer die leere Zeichenfolge für e.dataTransfer.getData("text") und e.dataTransfer.getData("url")

//==UserScript==
//@match http://*/*
//@match https://*/*
//==/UserScript==

function preventDrag(e) {
  e.stopPropagation();
  e.preventDefault();
}

function handleDrop(e) {
  console.log("Just dropped: " + e.dataTransfer.files[0].name);
  debugger
  //TODO: grab the url for e.dataTransfer.files[0]

  e.stopPropagation();
  e.preventDefault();
}

document.addEventListener('drop', handleDrop, false);
document.addEventListener('dragenter', preventDrag, false);
document.addEventListener('dragover', preventDrag, false);
  • So der Aufruf von console-log ist richtig, melden Sie das mit dem Namen?
  • ja, es meldet die mit dem Namen, aber ohne Pfad.
  • Nicht sicher, gut zu verstehen, aber wenn ich das Tue, werden Sie nicht in der Lage, eine Datei mit Pfad (d.h. die abgelegte Datei fullpath). Es ist ein "Schutz" von Browsern. Aber man kann zumindest den Namen davon. Hier ein jsFiddle, wie es zu tun: jsfiddle.net/U8yqL/1
  • Vielen Dank für die Geige! Ich war in der Lage zu verwenden readAsDataURL um den Inhalt der Datei selbst, das ist nicht so elegant wie ein file:// url aber ich werde dich für, die. Würden Sie mir, schreiben Sie es als eine Antwort, damit ich vergeben kann, die bounty?
Schreibe einen Kommentar