Próbuję pobrać i upuścić plik w Firefoksie i podejmuję kroki dla dzieci, aby rozpocząć. W tej chwili próbuję tylko przeciągnąć niektóre pliki do strefy zrzutów i uzyskać listę plików, które zostały odrzucone. W tym momencie nie chcę jeszcze nic robić z plikami.Plik Przeciąganie i upuszczanie w Firefoksie (wersja 10)
Kiedy przeciągam plik (w tym przypadku obraz, ale to samo dzieje się bez względu na typ pliku) z wyszukiwarki do strefy zrzutowej, widzę zdarzenia dragenter i dragexit. Kiedy upuszczam plik do strefy drop, zdarzenie drop nie uruchamia się. Zamiast tego przeglądarka otwiera obraz na swoim komputerze (np. Adres pokazuje plik: //path/to/my/image.png).
Moje javascript wygląda następująco:
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);
Moje HTML wygląda następująco:
<div id="standard_file_dropzone" style="height:150px; width:150px; border:solid;">
Standard Drop Files Here
</div>
Więc zastanawiam się, co robię źle tutaj? Wydaje się, że nie ma niczego (przynajmniej dla mnie oczywistego) nie w porządku z powyższym kodem. Wydarzenia dragenter/exit są uruchamiane, dlaczego nie jest to zdarzenie drop? Dlaczego przeglądarka próbuje otworzyć sam plik?
Uwaga: po otwarciu strony w przeglądarce Chrome działa ona zgodnie z oczekiwaniami, więc jest to problem specyficzny dla przeglądarki Firefox.
thnx, Christoph
To rzeczywiście działa, ale nie jest dla mnie jasne, dlaczego to jest oczywiste? – Mark
@ Christopat obawiam się z tym samym problemem, możesz pomóc w tym samym. –