После добавления файла в div
в Firefox, веб-страница будет перенаправлена на этот файл.Я попытался остановить это распространение с помощью jQuery e.preventDefault()
в обработчике drop
, но потерпел неудачу.
Смотрите эту демонстрацию , перетаскивание файла в #test
не будет перенаправлять веб-страницуно если заглянуть в #test1
, я хочу знать почему.Должен ли я всегда привязывать обработчики к dragenter
, dragover
, dragleave
и drop
, чтобы предотвратить распространение после drop
?
update:
Я нашел несколько советов по html5doctor :
Чтобы сообщить браузеру, что мы можем добавить этот элемент, все, что нам нужно сделать, - отменить событие dragover.Однако, поскольку IE ведет себя по-разному, нам нужно сделать то же самое для события dragenter.
А Mozilla утверждает :
Слушатель длясобытия dragenter
и dragover
используются для указания допустимых целей перетаскивания, то есть мест, где перетаскиваемые элементы могут быть сброшены.
Но я проверяю эту демонстрацию на firefox, #test
работает, а #test1
нет, кажется, что Mozilla допустила ошибку, и html5doctor прав: Firefox требуется dragover
только для того, чтобы drop
заработал.