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

What would cause event.dataTransfer.files to be null in IE10?

本文关键字:IE10 files event datattransfer 什么      更新时间:2023-09-26

那么,给定以下代码:

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中,event . datattransfer .files包含用户在页面上放置的所有文件。

但是在IE10中,没有event . datattransfer .files。FileList对象根本不存在。

任何想法?

datattransfer。文件在IE10中确实存在,它甚至在IE开发中心有文档:http://msdn.microsoft.com/en-us/library/ie/hh580307(v=vs.85).aspx

你可能有一个javascript错误或一些不一定与他相关的东西。你可以做的是,检查FileList对象是否存在。

if(typeof FileList !== 'undefined')

如果您的浏览器中存在FileList,则应该为真。如果它返回false,那意味着你可能没有使用IE10。

我回答有点晚了,但您可能想检查兼容性视图是否关闭。在IE9及以下版本中,datattransfer不存在,使用任何改变浏览器呈现的控制台工具都会从datattransfer中删除files对象。