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

在以下chrome用户脚本中,如何获取从桌面拖动的图像的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);

这是一个如何做到的jsfiddlejsFiddle demo

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...