简而言之,如果我将任何随机文件从我的桌面拖到浏览器上,浏览器(至少是Chrome和FF)会尝试将该文件作为浏览器的新位置加载。是否有一个很好的方法来解决这个问题?
背景是我在我正在工作的模块上启用了拖放功能。用户可以将文件拖到指定的dropzone上,然后上传文件。这非常有效。问题是,如果用户未命中,则上述愚蠢的功能接管并且用户发现自己正在查看浏览器中显示的图像(或其他),而不是我的网站上传的文件。
我尝试过像这样的天真的事情
$(document).on('drop', function(){
alert('x ');
});
但遗憾的是,当用户放弃我的有效dropzone时,此事件仅 触发,这当然不会影响我尝试做的事情。
答案 0 :(得分:1)
似乎问题中提到的幼稚方法令人惊讶地接近。显然,添加dragover事件就是它所需要的。
$(document).on('drop dragover', function(e){
e.preventDefault();
});