Prevent browser from loading a drag-and-dropped file

前端 未结 10 2032
逝去的感伤
逝去的感伤 2020-11-28 02:12

I\'m adding an html5 drag and drop uploader to my page.

When a file is dropped into the upload area, everything works great.

However, if I accidentally drop

10条回答
  •  暗喜
    暗喜 (楼主)
    2020-11-28 02:30

    Preventing all drag and drop operations by default might not be what you want. It's possible to check if the drag source is an external file, at least in some browsers. I've included a function to check if the drag source is an external file in this StackOverflow answer.

    Modifying Digital Plane's answer, you could do something like this:

    function isDragSourceExternalFile() {
         // Defined here: 
         // https://stackoverflow.com/a/32044172/395461
    }
    
    window.addEventListener("dragover",function(e){
        e = e || event;
        var IsFile = isDragSourceExternalFile(e.originalEvent.dataTransfer);
        if (IsFile) e.preventDefault();
    },false);
    window.addEventListener("drop",function(e){
        e = e || event;
        var IsFile = isDragSourceExternalFile(e.originalEvent.dataTransfer);
        if (IsFile) e.preventDefault();
    },false);
    

提交回复
热议问题