Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在internet explorer中的drop event javascript上上载文件_Javascript_Jquery_File Upload_Event Bubbling - Fatal编程技术网

在internet explorer中的drop event javascript上上载文件

在internet explorer中的drop event javascript上上载文件,javascript,jquery,file-upload,event-bubbling,Javascript,Jquery,File Upload,Event Bubbling,我需要在浏览器中的drop事件中上载文件,我需要确定文件是从同一窗口拖动的,还是从本地驱动器拖动的。如果文件是从同一窗口拖放的,我不需要显示上传弹出窗口,但在IE中它会出现。下面是我使用的代码 $("body").on('drop', function (e) { e.preventDefault(); var files = e.originalEvent.dataTransfer.files; if (files) {

我需要在浏览器中的drop事件中上载文件,我需要确定文件是从同一窗口拖动的,还是从本地驱动器拖动的。如果文件是从同一窗口拖放的,我不需要显示上传弹出窗口,但在IE中它会出现。下面是我使用的代码

$("body").on('drop', function (e) {
        e.preventDefault();
        var files = e.originalEvent.dataTransfer.files;        
            if (files) {
                showMultipleUpload(files);
            }
            else {
                $.alert("ERROR");
            }        
});
我试过以下方法,但都不管用

e、 srcElement、e.OriginaleEvent.srcElement、e.target具有dom 我将文件放在其中,无论它从何处拖动

e、 OriginaleEvent.fromElement为空

为主体禁用鼠标向下

$("body").on('mousedown', function (e) { 
    e.preventDefault();
});
/* this worked but i can't perform any click event for the same body tag. */
我已经将参数设置为false,不幸的是我不能 上传任何文件。i、 e.如果我进入主体,事件处理程序不会执行

使用标志标识是否从同一窗口拖动内容

 $("body").on('mousedown',function(e){
    e.preventDefault();
    flag = true; 
    /* if dragged from the same body tag it is set to true  */
 });

 $("body").on('drop', function (e) {
    e.preventDefault();
    if(!flag){
    var files = e.originalEvent.dataTransfer.files;        
        if (files) {
            showMultipleUpload(files);
        }
        else {
            $.alert("ERROR");
        } 
    }
    flag = false; 
    /* flag is cleared on every drop event, since we don't know 
       where the content is dragged from */
  });
这个方法工作得很好,但是如果我将内容放在正文之外,flag将始终设置为true,那么有合法的方法来解决这个问题吗