如何使用chrome userscript获取已删除图像的URL?

Ben*_*aum 10 javascript drag-and-drop google-chrome-extension dom-events

在以下chrome用户脚本中,如何获取从桌面拖动的图像的URL?我debugger有线,我得到空字符串e.dataTransfer.getData("text")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);
Run Code Online (Sandbox Code Playgroud)

Lei*_*iko 16

不确定我理解得很好,但如果我这样做,你将无法拥有文件路径(意味着删除文件的完整路径).
这是对浏览器的"保护".但你至少可以得到它的名字.

var file   = e.originalEvent.dataTransfer.files[0],
    reader = new FileReader();

reader.onloadend = function (event) {
    console.log(file);
    // filename is in file.name
    // ... do something here
}

reader.readAsArrayBuffer(file);
Run Code Online (Sandbox Code Playgroud)

这是一个如何做的jsFiddle:jsFiddle演示