如何使用Chrome用户脚本获取删除图像的URL? [英] How do I get the URL for a dropped image using a Chrome userscript?

查看:64
本文介绍了如何使用Chrome用户脚本获取删除图像的URL?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在以下chrome用户脚本中,如何获取从桌面拖动的图片的网址?
我有 debugger 行的地方,我得到的是 e.dataTransfer.getData( text)的空字符串 e.dataTransfer.getData( url)

In the following chrome user script, how can I get a url for an image that I drag from my desktop? Where I have the debugger line, I'm getting the empty string for e.dataTransfer.getData("text") and 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);


推荐答案

不确定我是否理解得很好,但是如果我知道,您将无法获得文件路径(即已删除的文件完整路径)。

这是来自浏览器的保护。但是,至少您可以得到它的名称。

Not sure I understand it well, but if I do, you won't be able to have a file path (meaning the dropped file fullpath).
It's a "protection" from browsers. But you can at least get the name of it.

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演示

Here is a jsFiddle of how to do it: jsFiddle demo

这篇关于如何使用Chrome用户脚本获取删除图像的URL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆