Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.04.2021, 18:02
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Почему не работает drag n drop upload в Хроме?
Как сделать драг-н-дроп загрузку файлов, чтобы это работало во всех браузерах?
Есть скрипт: https://codesandbox.io/s/crimson-nig...=/src/index.js
Если перетащить две картинки в DnD зону и отпустить, то в ФФ всё ок, а в Хроме файлов нет (см. скрин)

P.S. стащите себе файлы, а то что-то на codesandbox.io это и в ФФ работает калично

Или просто гляньте реализацию DnD из того же мозиловского MDN-а: http://jsfiddle.net/kgzevn5w/ -- это другая реализация, но там тоже это не работает

Скрин: https://ibb.co/8sSZjKM
Изображения:
Тип файла: jpg баг.jpg (17.9 Кб, 4 просмотров)

Последний раз редактировалось CryNet, 21.04.2021 в 18:05.
Ответить с цитированием
  #2 (permalink)  
Старый 21.04.2021, 18:33
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

У меня и там, и там все работает прекрасно.
Win10 v20H2, Chrome v89.0.4389.128
Ответить с цитированием
  #3 (permalink)  
Старый 21.04.2021, 19:46
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

Сообщение от CryNet
в Хроме файлов нет (см. скрин)
ты передай в консоль не event.dataTransfer, а event.dataTransfer.files[0], тогда всё будет видно

скорее всего, в хроме переиспользуются экземпляры dataTransfer, и потому сразу очищаются по завершении обработки события.
Ответить с цитированием
  #4 (permalink)  
Старый 21.04.2021, 21:49
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Alexandroppolus, хорошо, а если я хочу передать эти файлы на бэк? Мне же их нужно где-то хранить, чтобы не потерять и передать сами файлы по клику. То как мне быть, если dataTransfer пустой? Или я смогу их получить?
Ответить с цитированием
  #5 (permalink)  
Старый 22.04.2021, 00:13
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

просто сохранить event.dataTransfer.files в какую-нибудь переменную. Эта коллекция не будет очищена, в отличии от event.dataTransfer
Ответить с цитированием
  #6 (permalink)  
Старый 22.04.2021, 09:38
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Alexandroppolus, да, при event.dataTransfer.files[0] я вижу файл. Но все равно иногда в консоли, если вывести event.dataTransfer.files[0], иногда бывает undefined: http://jsfiddle.net/3mLxqefy/1/

Попробуйте поперезагружать страничку и покидать разные картинки

Последний раз редактировалось CryNet, 22.04.2021 в 09:42.
Ответить с цитированием
  #7 (permalink)  
Старый 22.04.2021, 09:49
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Alexandroppolus,
У меня проект на Реакте. То вот даже в библиотеках видимо проскакивает undefined, и файл не грузиться: https://codesandbox.io/s/react-dropz...rc/Uploader.js
Ответить с цитированием
  #8 (permalink)  
Старый 22.04.2021, 10:44
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

Сообщение от CryNet
То вот даже в библиотеках видимо проскакивает undefined, и файл не грузиться:
Может у вас расширение какое стоит?
У меня и здесь ничего не "проскакивает", все работает как и положено.

P.S. это значения не имеет, но пытаюсь перетащить два одинаковых jpg-файла размером в 77кб.
Ответить с цитированием
  #9 (permalink)  
Старый 22.04.2021, 11:05
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

Nexus, та я в инкогнито открываю вкладку
Странно всё это
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает подключенный скрипт?? ivt22 Элементы интерфейса 1 04.01.2016 10:59
Помогите разобраться почему не работает скрипт корректно Batyabest AJAX и COMET 1 09.07.2015 05:08
Почему не работает функция? Редактировать Isaac Общие вопросы Javascript 16 18.12.2012 16:22
Почему не работает второй Event? JavaScriptProgrammer Events/DOM/Window 6 15.10.2012 04:30
Не могу понять, почему не работает автокомпил в IE 8 gargon2008 jQuery 0 07.06.2011 11:31