在internet explorer中的drop event javascript上上载文件
我需要在浏览器中的drop事件中上载文件,我需要确定文件是从同一窗口拖动的,还是从本地驱动器拖动的。如果文件是从同一窗口拖放的,我不需要显示上传弹出窗口,但在IE中它会出现。下面是我使用的代码在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) {
$("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,那么有合法的方法来解决这个问题吗