js实现控制文件拖拽并获取拖拽内容

直接上代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #dragTarget {
            width: 300px;
            height: 200px;
            background-color: #CCC;
        }
    </style>
</head>

<body>
    <div id="dragTarget"></div>
</body>
<script>
    var dragTarget = document.querySelector('#dragTarget')

    dragTarget.addEventListener("dragenter", function (ev) {
        // 阻止浏览器默认事件
        ev.preventDefault();
    }, false);

    dragTarget.addEventListener("dragover", function (ev) {
        // 阻止浏览器默认事件
        ev.preventDefault();
    }, false);
    dragTarget.addEventListener("drop", function (ev) {
        ev.preventDefault();
        var data = ev.dataTransfer.items;
        for (var i = 0; i < data.length; i += 1) {
            if ((data[i].kind == 'string') &&
                (data[i].type.match('^text/plain'))) {
                // This item is the target node
                data[i].getAsString(function (s) {
                    ev.target.appendChild(document.getElementById(s));
                });
            } else if ((data[i].kind == 'string') &&
                (data[i].type.match('^text/html'))) {
                // Drag data item is HTML
                console.log("... Drop: HTML");
            } else if ((data[i].kind == 'string') &&
                (data[i].type.match('^text/uri-list'))) {
                // Drag data item is URI
                console.log("... Drop: URI");
            } else if ((data[i].kind == 'file') &&
                (data[i].type.match('^image/'))) {
                // Drag data item is an image file
                var f = data[i].getAsFile();
                console.log("... Drop: File ");
            }
        }
    }, false);
</script>

</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。