Информация о файле при наведении курсора на элемент

Я работаю над веб-страницей для управления файлами. Для функции мне нужно знать имя файла при наведении на файл над элементом. Важно получить эту информацию при НАВЕДЕНИИ, а не при «удалении» файла.

Я создал JSFiddle с настройкой. Когда вы наводите указатель мыши на отмеченный div, вы постоянно получаете некоторую информацию о типе файла.

Вы можете получить dataTransfer из события зависания

let transfer = event.dataTransfer;

Свойство item содержит тип MIME файла.

transfer.items

Однако вы не получите полную информацию о файле (имя, размер и т. д.).

transfer.files

При удалении файла я получаю полную информацию о файле

transfer.files.lenght //Equal to amount of files dropped

Я читал в нескольких старых сообщениях (‹ 2008 г.), что это может быть связано с безопасностью, чего я не понимаю. По сути, нет никакой разницы между наведением курсора на файл или удалением файла (кроме отпускания ЛКМ).

Спасибо за помощь :)


person Maxlisui    schedule 25.04.2018    source источник
comment
Разница в том, что пользователь может перетаскивать свою обнаженную фотографию, стоящую рядом с изображением его собаки, и осознавать это до того, как бросит картинку.   -  person Phiter    schedule 25.04.2018


Ответы (1)


Без системы защиты это означало бы, что веб-сайт может отслеживать все, что вы на него перетаскиваете. Допустим, вы хотите переместить файл из вашего средства поиска в другое место, и ваш браузер находится в пути. Или вы перетаскиваете какой-то текст из Word в какое-то другое приложение и даже ненадолго заходите в окно браузера. Ваш веб-сайт может получить доступ ко всему этому содержимому без желания пользователя взаимодействовать с ним.

Отпускание мыши — это добровольное действие пользователя, дающее понять, что он хочет перенести любые данные, которые он перетаскивает, на конкретную веб-страницу.

Обратите внимание: если вы контролируете драгстарт, вы можете получить информацию. Но если ваша страница не является фактическим агентом, начинающим перетаскивание, вы не можете предположить, пока элемент не будет удален, что пользователь хочет, чтобы контент был виден на вашей странице.

person Julien Grégoire    schedule 25.04.2018
comment
Не тот ответ, на который я надеялся, но тем не менее спасибо. - person Maxlisui; 25.04.2018