Ich baue einen einfachen Drag-and-Drop-Uploader und frage mich, warum ich die Datei (en), die ich ablege, nicht sehen kann, wenn ich console.log(e)
(DragEvent) sehe und auf das DragEvent.dataTransfer.files
schaue leer, aber ... wenn ich console.log(e.dataTransfer.files)
zeige, werden die abgelegten Dateien angezeigt.
// CODE
%Vor%Der Datenspeicher ziehen hat je nach Zugriffsart unterschiedliche Modi:
dragstart
-Ereignis ist es im Modus Lesen / Schreiben . drop
-Ereignis ist es im Modus Nur lesen . Und bei allen anderen Ereignissen ist es im geschützten Modus.
Geschützter Modus ist auf diese Weise definiert:
Geschützter Modus
Für alle anderen Ereignisse. Die Formate und Arten im Ziehdatenspeicher Die Liste der Elemente, die die gezogenen Daten darstellen, kann aufgelistet werden, aber der Daten selbst sind nicht verfügbar und es können keine neuen Daten hinzugefügt werden.
Siehe hier: Ссылка
Das heißt, wenn Sie auf das dataTransfer
-Objekt in Ihrer Konsole zugreifen, das nicht auf drop
oder dragstart
event ist, befindet es sich im geschützten -Modus und verhindert den Zugriff auf die Daten.
Sie können fileList
anzeigen, weil Sie das Ereignis fileList
für drop
protokollieren, wenn dataTransfer
lesbar ist. Wenn Sie jedoch e.dataTransfer
oder e
protokollieren, können Sie nicht auf Daten zugreifen.
Sie können hier testen, sogar auf dragover
können Sie nicht darauf zugreifen, was in dataTransfer
ist:
Tags und Links javascript html5 drag-and-drop drag