Tôi đang cố gắng kéo và thả tệp trong firefox và đang thực hiện các bước em bé để bắt đầu. Ngay bây giờ, tôi chỉ cố gắng kéo một số tệp vào vùng thả xuống và nhận danh sách các tệp bị xóa. Tại thời điểm này, tôi không muốn làm bất cứ điều gì với các tập tin được nêu ra.Kéo và thả tệp trong Firefox (v10)
Khi tôi kéo một tệp (trong trường hợp này là một hình ảnh, nhưng điều tương tự xảy ra bất kể loại tệp) từ công cụ tìm đến vùng thả xuống, tôi có thể thấy sự kiện kéo và dragexit kích hoạt. Khi tôi thả tệp vào vùng thả xuống, sự kiện thả không kích hoạt. Thay vào đó, điều sẽ xảy ra là trình duyệt sẽ tự mở hình ảnh đó (ví dụ: địa chỉ đang hiển thị tệp: //path/to/my/image.png).
javascript của tôi trông như thế này:
dropbox = document.getElementById("standard_file_dropzone");
dropbox.addEventListener("dragenter", function(){console.log('standard enter');}, false);
dropbox.addEventListener("dragexit", function(){console.log('standard exit');}, false);
dropbox.addEventListener("dragover", $.noop, false);
dropbox.addEventListener("drop", function (event) {
console.log('standard dropped');
event.stopPropagation();
event.preventDefault();
if((typeof event.dataTransfer.files !== 'undefined') &&
(event.dataTransfer.files.length > 0)) {
console.dir(event.dataTransfer.files);
}
return false;
}, false);
HTML của tôi trông như thế này:
<div id="standard_file_dropzone" style="height:150px; width:150px; border:solid;">
Standard Drop Files Here
</div>
Vì vậy, tôi tự hỏi mình đang làm gì sai ở đây? Có vẻ như không có bất cứ điều gì (ít nhất là rõ ràng với tôi) sai với mã trên. Sự kiện kéo/thoát đang kích hoạt, tại sao không phải là sự kiện thả? Tại sao trình duyệt lại cố tự mở tập tin?
Một điều cần lưu ý, khi tôi mở trang của mình trong Chrome, điều này đang hoạt động như dự kiến, vì vậy đây là sự cố cụ thể của Firefox.
thnx, Christoph
Điều này thực sự hiệu quả, nhưng nó không thực sự rõ ràng với tôi tại sao điều này là hiển nhiên? – Mark
@Christoph Tôi đang đối mặt với cùng một vấn đề bạn có thể giúp đỡ trong cùng một. –