У меня есть веб-страница, которая позволяет перетаскивать файлы из-за пределов браузера и перетаскивать на цель на моей веб-странице.Мое приложение будет загружать копию каждого файла, поэтому я установил dataTransfer.dropEffect на «copy», чтобы браузер сообщал пользователю, что это приведет к копированию, а не к перемещению.Это работает, как и ожидалось, в Chrome: при перетаскивании файла поверх моей цели перетаскивания браузер отображает курсор «копирования».Но Firefox, похоже, игнорирует dropEffect и продолжает отображать курсор по умолчанию «move», пока файлы перетаскиваются поверх моей цели перетаскивания.Я много занимался поиском и не нашел упоминания о проблеме Firefox, подобной этой, поэтому я, вероятно, упускаю из виду некоторые детали в своем коде.Я включил урезанный пример, который иллюстрирует проблему ниже.Заранее спасибо, если кто-то может заметить, что я делаю неправильно.
<!DOCTYPE html>
<html>
<head>
<title>Test Stuff</title>
<style type="text/css">
P
{
background-color: #cccccc;
padding: 10px;
}
</style>
<script type="text/javascript">
function DocOnLoad() {
var target = document.getElementById('dropTarget');
target.addEventListener('dragenter', function (e) {
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
});
target.addEventListener('dragover', function (e) {
e.preventDefault();
e.dataTransfer.dropEffect = 'copy';
});
target.addEventListener('drop', function (e) {
e.preventDefault();
var files = e.dataTransfer.files;
alert(files[0].name);
});
}
</script>
</head>
<body onLoad="DocOnLoad()" >
<p id="dropTarget">Drop target.</p>
</body>
</html>