2

因此,鉴于此代码:

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 对象根本不存在。

有任何想法吗?

4

2 回答 2

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 存在于您的浏览器中,这应该是正确的。如果它返回 false,则意味着您可能没有使用 IE10。

于 2013-07-29T18:34:35.880 回答
0

我的答案有点晚了,但您可能想检查兼容性视图是否已关闭。在 IE9 及更低版本中,dataTransfer 不存在,并且使用任何更改浏览器呈现的控制台工具都会从 dataTransfer 中删除文件对象。

于 2013-10-03T22:40:09.527 回答