Браузерная поддержка загрузки файлов методом перетаскивания - PullRequest
13 голосов
/ 23 ноября 2010

Кажется, я нигде не могу найти его в Интернете, только демонстрации или ссылки на спецификации или реализацию Google Gears. Это все замечательно, но мне было любопытно, какова реальная поддержка браузеров в основных браузерах и ОС. Firefox, Chrome, Safari, Opera, а у IE есть альтернатива? А как насчет IE9?

Ответы [ 4 ]

17 голосов
/ 25 мая 2011

Для поддержки загрузки файлов методом перетаскивания в HTML5 браузер должен поддерживать API перетаскивания (DnD) и API файлов одновременно.

IE поддерживает DnD из IE5, но не поддерживает File API даже в IE9. Opera поддерживает File API от 11.1, но не поддерживает DnD.

Таким образом, вы можете использовать перетаскивание файлов в Firefox 3.6+, Safari 6.0+, Chrome 9.0 +.

Проверьте эту таблицу совместимости.

DnD http://caniuse.com/#search=drag

Файловый API http://caniuse.com/#search=fileapi

6 голосов
/ 28 января 2011

Firefox 3.5+ имеет приятный API-интерфейс для перетаскивания: https://developer.mozilla.org/En/DragDrop/Drag_and_Drop

Chrome вы можете перетаскивать на загрузку файла, так что вы можете сделать перетаскивание, но вы должны подделать его, скрыв форму с непрозрачностью: 0, но сделав ее большой с помощью div обтекания и ширины: 100% и высота: 100%: http://www.thecssninja.com/javascript/gmail-upload

Safari - это то же самое, что и Chrome, за исключением того, что вы можете делать только один файл за раз, подробнее об этом по ссылке выше в конце поста (ссылка thecssninja)

IE кажется, что вы можете использовать VBDataObject или ActiveX, но я все еще не совсем уверен, где найти дополнительную информацию. Я могу просто найти небольшие фрагменты информации о том, как вы могли бы использовать их: http://www.codingforums.com/showthread.php?t=36896 - Если кто-нибудь может помочь мне с тем, как заставить IE поддерживать его, дайте мне знать.

В Опере вообще ничего нет. Просто играя с ним, он действует как IE, где, если вы перетащите на закачку файла, он просто откроет этот файл. Если кто-нибудь знает об этом, дайте мне знать.

4 голосов
/ 23 ноября 2010

Проект PIUpload имеет таблицу совместимости.В нем говорится

Поддержка перетаскивания файлов в настоящее время доступна только в Firefox 3.5+.WebKit / Opera пока не поддерживает эту функцию.

1 голос
/ 13 апреля 2011

Safari 5 действительно поддерживает перетаскивание нескольких файлов с рабочего стола в браузер.Я уже давно пользуюсь этой возможностью, и я рад поделиться своим кодом, если хотите.

...