11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Dans le cadre d'un petit projet en interne dans ma boite (projet que je développe de mon propre gré), je me suis lancé dans la création d'un uploader de fichiers en drag and drop.

Pour l'instant j'avance bien, je commence à comprendre comment tout fonctionne (étant un peu rouillé du code depuis quelques mois).

cf ici : http://pulsana.info/pix_mea/dnd/i2.html

Cependant, je suis confronté a 1 problème: Quand la personne drop le fichier, non pas dans la zone de drop, mais sur le reste de la page, cela affiche le fichier avec file://.. .J'aimerais donc pouvoir empêcher ceci. Je sais que c'est faisable car dans ce projet : http://valums.com/ajax-upload/ , c'est parfaitement géré.

Autre chose qui, je pense, viens en même temps, j'aimerais pouvoir faire réagir mon div dès que la personne est en train de drag le fichier. A l'heure actuelle, il faut que la personne ait drag le fichier "over" ma zone de drop au moins une fois.

Les event que j'utilise actuellement :

- dragover : quand on est dans la zone de drop
- drop : quand le fichier est laché
- dragexit : quand on sort de la zone de drop

J'ai utilisé aussi dragleave, pour gérer ce qui se passe après un dragexit.
Mais je ne sais pas comment faire pour que mon div réagisse dès que ma souris est sur la fenetre et pour également empêcher de drop au beau milieu de la fenêtre.

J'espère avoir été le plus clair possible pour vous faire perdre le moins de temps à m'aider la dessus.

Merci d'avance Smiley smile


EDIT: fix des url.
Modifié par Traerin (28 Sep 2011 - 14:53)
Je viens de penser à un truc.

Etant donné que mes listeners sont sur mon div, si je met un listener sur le body, ça devrait le faire en théorie.

Je vais essayer en tous cas Smiley smile


EDIT: Bon et bien ça fonctionne très bien sous Chrome mais pas sous Firefox. Peut-être une interdiction de donner une id au body, ou alors d'interagir dessus, je ne sais pas.

Aucune erreur ni warning dans la console d'erreur. Si vous avez des idées, je suis preneur Smiley smile
Modifié par Traerin (28 Sep 2011 - 16:12)