Sto costruendo un semplice uploader drag and drop e mi sto chiedendo perché non riesco a vedere il file (i) che rilascia quando I console.log(e)
(DragEvent) e guardo il DragEvent.dataTransfer.files
appare vuoto, ma ... se I console.log(e.dataTransfer.files)
mostrerà i file rilasciati.Drag & Drop - oggetto DataTransfer
// CODICE
<!DOCTYPE html>
<html>
<head>
<script>
document.addEventListener("DOMContentLoaded", init);
function init(){
var dropbox = document.getElementById('dropbox');
dropbox.addEventListener('dragover', drag.over);
dropbox.addEventListener('drop', drag.drop);
}
var drag = {
"over": function(e){
e.preventDefault();
},
"drop": function(e){
e.preventDefault();
console.log(e); //NO FILES SHOWN
console.log(e.dataTransfer.files); //FILES in FileList Object
}
};
</script>
<style>
body{
margin: 0 !important;
height: 100vh;
width: 100vw;
display: flex;
justify-content: center;
}
#dropbox{
height: 400px;
width: 400px;
align-self: center;
background-color: #0089C4;
border-radius: .3em;
border: 1px dashed black;
-webkit-box-shadow: 0px 2px 7px rgba(0, 0, 0, 0.40);
box-shadow: 0px 2px 7px rgba(0, 0, 0, 0.40);
}
</style>
</head>
<body>
<div id="dropbox"></div>
</body>
</html>
Al momento si fa clic sull'oggetto in consolle potrebbe essere passato attraverso molteplici funzioni che cambiano le sue proprietà Quindi perché ti aspetteresti che sia lo stesso? Se ne hai bisogno in seguito, puoi bloccarlo, clonarlo o copiare il valore. – Buksy