在以下chrome用户脚本中,如何获取从桌面拖动的图像的URL?
我有调试器行,我得到e.dataTransfer.getData(“text”)和e.dataTransfer.getData(“url”)的空字符串
我有调试器行,我得到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',false);
解决方法
不确定我理解得很好,但如果我这样做,你将无法拥有文件路径(意味着删除文件的完整路径).
这是对浏览器的“保护”.但你至少可以得到它的名字.
这是对浏览器的“保护”.但你至少可以得到它的名字.
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);
这是一个如何做到的jsFiddle:jsFiddle demo