Comment faire pour déterminer la présence de HTML5 drag'n'drop de téléchargement de fichiers API (comme celle de FF3.6)
Je suis en train d'écrire une application qui est censé supporter HTML5 glisser/déposer de l'API pour les fichiers, un peu comme le décrit ici.
Je voudrais effectuer une programmatiques vérifier si le navigateur prend en charge ce genre de folie 🙂
Une solution qui fonctionne pour l'instant est de vérifier si le navigateur fournit un FileReader classe, comme ceci:
if (typeof(FileReader) == "undefined") {
$("#dropbox").hide();
} else {
//connect events
$("#filebox").hide();
}
Mais il n'est évidemment pas correct (je n'ai pas l'utilisation de cette classe à tous).
Des idées?
Vous devez vous connecter pour publier un commentaire.
De vérifier l'existence de FileReader est la bonne façon d'aller à ce sujet. FileReader est une partie officielle de la Fichier Api. Je voudrais combiner cela avec Modernizr. Faites glisser et Déposez le soutien est prévu pour la version 1.2. Vous devriez être en mesure de saisir la source sur GitHub et de commencer à travailler avec maintenant.
http://github.com/Modernizr/Modernizr/blob/master/modernizr.js
Si vous n'avez pas vu Plongez dans HTML5, vous devriez certainement vérifier de Mark Pilgrim suggestions sur la détection de HTML5.
if (!!FileReader)
dans IE8 lance un "FileReader est pas défini" erreurif(!!window.FileReader)
au lieu deif(window.FileReader)
?window.FileReader
. Voir ma réponse pour l'exemple complet.J'ai dû faire un léger changement de dshaw's réponse pour le soutien dans IE8:
Vous pouvez l'essayer ici
!!
nécessaire? N'est pas la déclaration!!window.FileReader
équivalent àwindow.FileReader
?Si vous ne voulez pas avoir affaire avec Modernizr à tous, vous pouvez simplement reproduire ce qu'il fait pour drag'n'drop de détection:
L'ai eu à partir de Modernizr GitHub:
https://github.com/Modernizr/Modernizr/blob/master/feature-detects/draganddrop.js
utiliser pure Modernizr approche
ou l'utilisation sous-jacente DOM vérifier directement mais avec la gestion des exceptions
Ce code ne fonctionne pas avec IE8.
Ce serait probablement mieux:
Son un peu plus compliqué. iOS7 rapports qu'il soutient à la fois FileReader et draganddrop photos à télécharger. Depuis que je suis à la recherche d'un plus générale de téléchargement de fichiers que je ne pouvais pas faire avec iOS, j'avais besoin d'une réponse.
Modernizr numéro 57 à ici parle de la question. Maintenant avec windows 8 et deux contact et de la souris, ses délicates. Il y a un code dans le milieu par chriskeeble que j'ai utilisé avec succès. Il s'appuie sur Modernizr et agent de détection.