Вы можете сделать это с помощью перетаскивания HTML5, ваш обработчик перетаскивания будет использовать dataTransfer.files
для передачи файлов с вашего рабочего стола в браузер. Когда вы выбрасываете событие, это просто MouseEvent
, вы можете получить x
и y
для этого места в выпадающем DIV.
Например:
<html>
<style>
#drop {
border: 2px solid #eee;
text-align: center;
padding: 20px;
}
</style>
<div id="drop">Drop files here</div>
<script>
function handleDrop(e) {
e.stopPropagation();
e.preventDefault();
var files = e.dataTransfer.files;
for (var i = 0, f; f = files[i]; i++) {
console.log('File: ' + f.name + ' dropped in the div in [' + e.x + ', ' + e.y + ']');
}
}
function handleDragOver(e) {
e.stopPropagation();
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
}
var dropTarget = document.getElementById('drop');
dropTarget.addEventListener('dragover', handleDragOver, false);
dropTarget.addEventListener('drop', handleDrop, false);
</script>
</html>