11576 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous
Je suis toujours en train d'apprendre les arcanes du DnD avec mon programme de test.
Je cherche à récupérer un texte dans un fichier texte et à le dropper dans une zone de ma page de test. Le résultat est qu'au moment du drop le texte est intercepté par le navigateur (FireFox) qui le considère comme l'adresse d'une page devant remplacer la page de test.
y a-t-il un moyen d'obtenir ce que je cherche à faire, c'est à dire récupérer ce texte dans la méthode drop attachée à ma zone?
Bonjour, ce comportement est classique avec le Drag and Drop natif : si le preventDefault() n'est appliqué que dans le gestionnaire drop et pas aussi dans dragover, le navigateur reprend la main dès le relâchement et traite le contenu déposé comme une URL à ouvrir, d'où l'effet de navigation que vous observez. Pensez donc à appeler event.preventDefault() sur les deux événements dragover et drop de votre zone cible. Pour récupérer le texte, utilisez ensuite event.dataTransfer.getData('text/plain') dans le handler drop plutôt que de laisser Firefox gérer lui-même l'élément déposé. Si le texte provient d'un fichier .txt glissé depuis l'explorateur et non d'une simple sélection de texte, il faudra plutôt passer par event.dataTransfer.files et un FileReader pour en lire le contenu.
Meilleure solution
Merci de ces explications.
Je vais ajouter event.preventDefault() dans le traitement de l'évènement drop, il est déjà dans dragovever.

Edit: c'est OK merci
Modifié par PapyJP (14 Aug 2026 - 18:42)