测试拖放事件是否包含文件

Avatar of Chris Coyier
Chris Coyier

HTML5 拖放功能非常适合处理文件上传。但如果这是您唯一的使用场景,那么了解某个特定的 dragenterdragover 事件是否实际包含文件会很有用。例如,与仅仅拖动一些选定的文本不同。

将事件对象发送到此函数,它将返回真值(假设您使用的是支持所有这些功能的浏览器 支持所有这些功能)。

function containsFiles(event) {

    if (event.dataTransfer.types) {
        for (var i = 0; i < event.dataTransfer.types.length; i++) {
            if (event.dataTransfer.types[i] == "Files") {
                return true;
            }
        }
    }
    
    return false;

}