Определить, поддерживает ли браузер перетаскивание? - PullRequest
5 голосов
/ 13 марта 2011

Я реализую jQuery File Upload и пытаюсь выяснить, как лучше всего определить, может ли клиент поддерживать перетаскивание, чтобы я мог отобразить что-то вроде «Перетащите файлы сюда, чтобы загрузить» толькоесли они действительно могут это сделать.

В коде плагина я вижу функцию isXHRUploadCapable, которая, кажется, почти коррелирует с поддержкой перетаскивания, но я думаю, что это более случайно, чем что-либо другое.(Он использует iFrames для публикации загрузки, а не XMLHTTPRequest загрузки для IE и Opera).Не вижу ничего, что сообщало бы мне, поддерживается ли перетаскивание, поэтому я подозреваю, что это просто событие или нет.

В документах сказано: «Перетаскивание не поддерживается в Windowsверсия Safari. MSIE и Opera не поддерживают Drag & Drop, выбор нескольких файлов или индикацию загрузки. "Так что, возможно, только версия Safari для Windows поддерживает загрузку XMLHTTPRequest, но не перетаскивание?

В любом случае - я пытаюсь найти лучший способ определить, поддерживает ли браузер загрузку с перетаскиваниемиспользуя этот плагин, и я не уверен, как бы я это сделал.Можно ли легко протестировать функциональность перетаскивания?Как бы я это сделал?Будет ли эта функция зависеть от браузера или от того, поддерживает ли Jquery Upload его для этого браузера?

Ответы [ 4 ]

5 голосов
/ 13 марта 2011

Modernizr - это де-факто плагин для поддержки браузеров, который поддерживает обнаружение с помощью перетаскивания.

В Modernizr 1.5 мы тестируем следующие события перетаскивания:

  • перетаскивание
  • перетаскивание
  • перетаскивание
  • dragover
  • dragleave
  • dragend
  • drop

Источник

2 голосов
/ 10 апреля 2012

У меня та же проблема, и я попытался проверить оба окна. FileReader && Modernizr.draganddrop, как вы сказали. Это мой тестовый вывод:

IE window.FileReader==undefined && Modernizr.draganddrop==true
OPERA window.FileReader==window.FileReader && Modernizr.draganddrop==false
CHROME window.FileReader==window.FileReader && Modernizr.draganddrop==true
FIREFOX window.FileReader==window.FileReader && Modernizr.draganddrop==true
SAFARI window.FileReader==undefined && Modernizr.draganddrop==true

Итак, ваше состояние убирает D & D не поддерживаемые браузеры IE и OPERA. Но он также пропускает SAFARI, который поддерживает перетаскивание.

В этом случае мы можем добавить проверку jQuery.browser, чтобы удалить IE и OPERA.

1 голос
/ 23 октября 2013

Текущая версия Modernizr, 2.6.2, включает в себя тест для FileReader.

Modernizr.filereader && Modernizr.draganddrop

Тест filereader относится к разделу Неядерный обнаруживает . draganddrop находится в разделе HTML5 . Посетите Modernizr страницу загрузки .

0 голосов
/ 22 марта 2014

Это немного сложнее.iOS7 сообщает, что поддерживает загрузку картинок FileReader и draganddrop.Так как я искал более общую загрузку файла, которую я не мог сделать с iOS, мне нужен был другой ответ.

Modernizr выпуск 57 в здесь говорит о проблеме.Теперь с Windows 8, позволяющей как сенсорный, так и мышь, это сложно.В середине есть код от chriskeeble, который я успешно использовал.Он опирается на Modernizr и обнаружение агентов.

...