6

Aşağıdaki chrome kullanıcı komut dosyasında, masaüstümden sürüklediğim bir resim için nasıl bir URL alabilirim? Ben debugger çizgi var , ben de anlamak için boş e.dataTransfer.getData("text") için dizesi ve e.dataTransfer.getData("url")Bir chrome usercript kullanarak atılan bir resmin URL'sini nasıl alabilirim?

// ==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); 
+0

Yani günlüğü konsola çağrı doğru dosya adı log vermez: Burada

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); 

bunu nasıl bir jsFiddle nedir? –

+0

@Fresh evet, dosya adını bildirir, ancak herhangi bir yolu yoktur. –

+1

İyi bir şekilde anladığınızdan emin değilsiniz, ancak bir dosya yoluna sahip olamayacaksınız (düşmüş dosya fullpath anlamına gelir). Bu tarayıcılardan bir "koruma". Ama en azından adını alabilirsin. İşte nasıl yapılacağını bir jsFiddle: http://jsfiddle.net/U8yqL/1/ – Leiko

cevap

5

Emin değilim alıyorum ama yaparsanız, yani (bir dosya yolu olması mümkün olmayacaktır bırakılan dosya fullpath).
Bu tarayıcılardan bir "koruma" dir. Ama en azından adını alabilirsin. jsFiddle demo

İlgili konular