Отключить перетаскивание образа файловой системы в браузер. - PullRequest
7 голосов
/ 13 сентября 2011

Я экспериментирую с API файла HTML5.Однако я заметил, что браузеры ведут себя по умолчанию, когда они отображают изображение, если вы перетаскиваете изображение в браузер.Однако это может раздражать, если ваша цель - загрузить изображение, а не просмотреть его.

Мне интересно, есть ли способ предотвратить такое поведение?Я пробовал stopPropagation / protectDefault для события ondrop, которое работает несколько, однако оставляет курсор «перетаскивания» на месте, создавая впечатление, что изображение может быть пропущено в любом месте на странице.

В идеале вы бы видели курсор «перетаскивания» только в обозначенной области, где изображения должны быть отброшены.

Ответы [ 2 ]

13 голосов
/ 13 сентября 2011

Объект dataTransfer имеет свойства dropEffect и effectAllowed. Не совсем уверен, какая разница между ними, но установка обоих на «none» должна помочь.

$(document).bind({
   dragenter: function (e) {
      e.stopPropagation();
      e.preventDefault();
      var dt = e.originalEvent.dataTransfer;
     dt.effectAllowed = dt.dropEffect = 'none';
   },
   dragover: function (e) {
      e.stopPropagation();
      e.preventDefault();
      var dt = e.originalEvent.dataTransfer;
      dt.effectAllowed = dt.dropEffect = 'none';
   }
});

См. http://jsfiddle.net/andreymir/H3RR7/embedded/result/ - падение разрешено только для прямоугольника.

0 голосов
/ 13 сентября 2011

Возможно, это то, что вы ищете? Я разработал это сам.

http://rightandrong.info/html5upload/Upload.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...