Javascript 什么会导致event.dataTransfer.files在IE10中为空?

Javascript 什么会导致event.dataTransfer.files在IE10中为空?,javascript,html,internet-explorer-10,Javascript,Html,Internet Explorer 10,因此,考虑到这一代码: var container = document.getElementById("body"); container.addEventListener("dragenter", noopHandler, false); container.addEventListener("dragover", noopHandler, false); container.addEventListener("drop", function(evt) { noopHandler(e

因此,考虑到这一代码:

var container = document.getElementById("body");
container.addEventListener("dragenter", noopHandler, false);
container.addEventListener("dragover", noopHandler, false);
container.addEventListener("drop", function(evt) {
    noopHandler(evt);
    console.log('drop');
    console.log(evt.dataTransfer.files);
}, false);
在Chrome和FF中,evt.dataTransfer.files包含用户在页面上删除的所有文件

但是在IE10中,没有evt.dataTransfer.files文件。文件列表对象根本不存在


有什么想法吗?

dataTransfer.files确实存在于IE10中,它甚至记录在IE开发中心:

您可能有一个javascript错误或与此无关的东西。但是,您可以做的是检查FileList对象是否存在

if(typeof FileList !== 'undefined')

如果浏览器中存在文件列表,则应为真。如果返回false,则表示您可能没有使用IE10。

我回答有点晚,但您可能需要检查兼容性视图是否已关闭。在IE9及以下版本中,数据传输不存在,并且使用任何更改浏览器渲染的控制台工具都会从数据传输中删除文件对象。

在IE 10.0.9200.166181中,它对我来说效果很好。你确定你是IE10的官方版本吗?只是检查一下,因为dataTransfer.files是在Preview 2中添加的,所以从技术上讲,在没有这些文件的情况下可以使用“IE10”。2.如果使用常规的
,则不执行
document.getElementById('file').addEventListener('change',function(){console.log(this.files);},false)给你文件列表?我有一个类似的问题。希望,[this][1]能对您有所帮助。[1]: