所以,鉴于此代码:
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。 FileList对象根本不存在。
有什么想法吗?
答案 0 :(得分:1)
dataTransfer.files确实存在于IE10中,它甚至记录在IE开发中心:http://msdn.microsoft.com/en-us/library/ie/hh580307(v=vs.85).aspx
你可能有一个javascript错误或某些不一定与他有关的东西。但你可以做的是检查FileList对象是否存在。
if(typeof FileList !== 'undefined')
如果您的浏览器中存在FileList,则应该为true。如果它返回false,则表示您可能没有使用IE10。
答案 1 :(得分:0)
我的答案有点迟了,但您可能想检查兼容性视图是否已关闭。在IE9及以下版本中,dataTransfer不存在,并且使用任何更改浏览器呈现的控制台工具都会从dataTransfer中删除文件对象。