【问题标题】:Disable dragging images from desktop to html禁止将图像从桌面拖动到 html
【发布时间】:2014-03-13 04:43:13
【问题描述】:

我试图实现一个简单的 HTML5 拖放图像上传器,一切都运行良好。我在 html 中有一个小 div,带有一个简单的 js 事件处理程序,看起来像这样

$('#uploader').on('dragover', function(e){
  ...
}).on('dragenter', function(e){
  ...
}).on('dragleave', function(e){
  ...
}).on('drop', function(e){
  ...
})

唯一的小问题是,如果一个人错过了那个 div 并且不小心将他的图像丢到了它之外,浏览器会触发它的默认事件(在同一个选项卡中打开图像),这不是很好。

我试图通过这样做来禁用它

$(elem).on('drop', function(e){
    if (e.originalEvent.preventDefault) e.originalEvent.preventDefault();
    if (e.originalEvent.stopPropagation) e.originalEvent.stopPropagation();
    return false;
})

我尝试了不同的元素,如文档、正文、另一个父 div,但如果该人缺少上传者 div,浏览器仍会在另一个页面中打开图像。我还尝试在 HTML 标记中的元素上添加 droppable = 'false',但结果相同。

有没有办法防止这种行为?

【问题讨论】:

  • stackoverflow.com/a/6756680/2752041 的可能重复项。看看接受的答案,它可能会解决您的问题。
  • 谢谢。它肯定是重复的(对此感到抱歉)。但穆萨的回答解决了问题,而且更短。

标签: javascript html drag-and-drop


【解决方案1】:

尝试阻止拖动事件

$(document).on('dragover drop', function(e){
  return false;
});

【讨论】:

  • 谢谢,它有效。奇怪的是,当我尝试“文档”和“正文”时,它不起作用。
猜你喜欢
  • 2011-05-11
  • 1970-01-01
  • 2012-12-09
  • 2020-09-17
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多