禁止将图像从桌面拖动到 html

Posted

技术标签:

【中文标题】禁止将图像从桌面拖动到 html【英文标题】:Disable dragging images from desktop to 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',但结果相同。

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

【问题讨论】:

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

尝试阻止拖动事件

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

【讨论】:

谢谢,它有效。奇怪的是,当我尝试“文档”和“正文”时,它不起作用。

以上是关于禁止将图像从桌面拖动到 html的主要内容,如果未能解决你的问题,请参考以下文章

拖动时退出禁止光标

403 禁止 没有权限

403 禁止 没有权限

html5 video 标签 怎样禁止拖动或者点击进度条

texarea禁止拖动

iOSTableview 禁止下拉,允许上拉