2011-09-13 26 views
7

HTML5 dosya API'sı ile deneme yapıyorum. Ancak, tarayıcının görüntüyü tarayıcıya sürüklerseniz, bir görüntüyü görüntüledikleri varsayılan davranışların olduğunu fark ettim. Ancak amacınız görüntüyü görüntülemek yerine yüklemekse can sıkıcı olabilir.Dosya sistemi görüntüsünün tarayıcıya sürüklenmesini devre dışı bırakın.

Bu davranışı engellemenin bir yolu olup olmadığını merak ediyorum. Bir şekilde çalışan bir ondrop olayında stopPropagation/preventDefault yöntemini denedim, ancak "bırak" imlecini, görüntünün sayfada herhangi bir yere bırakılabileceği izlenimini veren yerinde bırakır.

İdeal olarak, yalnızca "bırakma" imlecini, görüntünün bırakılması gerektiği belirtilen alanda görürsünüz.

cevap

13

dataTransfer nesnesi dropEffect ve effectAllowed özelliklere sahiptir. Aralarındaki farkın tam olarak ne olduğundan emin değilsiniz, ancak her ikisini de 'yok' olarak ayarlamalısınız.

$(document).bind({ 
    dragenter: function (e) { 
     e.stopPropagation(); 
     e.preventDefault(); 
     var dt = e.originalEvent.dataTransfer; 
    dt.effectAllowed = dt.dropEffect = 'none'; 
    }, 
    dragover: function (e) { 
     e.stopPropagation(); 
     e.preventDefault(); 
     var dt = e.originalEvent.dataTransfer; 
     dt.effectAllowed = dt.dropEffect = 'none'; 
    } 
}); 

http://jsfiddle.net/andreymir/H3RR7/embedded/result/ - yalnızca dikdörtgene izin verilir.

İlgili konular