Prevent browser from loading a drag-and-dropped file Prevent browser from loading a drag-and-dropped file jquery jquery

Prevent browser from loading a drag-and-dropped file


You can add a event listener to the window that calls preventDefault() on all dragover and drop events.
Example:

window.addEventListener("dragover",function(e){  e = e || event;  e.preventDefault();},false);window.addEventListener("drop",function(e){  e = e || event;  e.preventDefault();},false);


After a lot of fiddling around, I found this to be the stablest solution:

var dropzoneId = "dropzone";window.addEventListener("dragenter", function(e) {  if (e.target.id != dropzoneId) {    e.preventDefault();    e.dataTransfer.effectAllowed = "none";    e.dataTransfer.dropEffect = "none";  }}, false);window.addEventListener("dragover", function(e) {  if (e.target.id != dropzoneId) {    e.preventDefault();    e.dataTransfer.effectAllowed = "none";    e.dataTransfer.dropEffect = "none";  }});window.addEventListener("drop", function(e) {  if (e.target.id != dropzoneId) {    e.preventDefault();    e.dataTransfer.effectAllowed = "none";    e.dataTransfer.dropEffect = "none";  }});
<div id="dropzone">...</div>