赞
踩
拖动文件到窗口打开是非常常用的一个功能,这个功能实现非常简单。这里将对该功能进行进行简单的代码演示。
上面演示中我将文件拖动到指定区域后文件内容会被显示,而拖动文件到非指定区域时文件会从新标签页打开(这是浏览器的默认行为)。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>拖动文件到窗口打开</title> <style> div { width: 250px; height: 100px; background-color: lightgray; text-align: center; line-height: 100px; } </style> <script> function dragover(event) { // 元素在目标区域中拖动时持续触发dragover事件(默认约每350ms触发一次) // dragover事件会比drop先触发 // dragover事件的默认行为是"重置当前的拖拽动作为'none'" // 所以必须禁用dragover事件的默认行为才能触发drop事件 event.preventDefault(); } function drop(event) { // 元素在目标区域上释放触发drop事件 event.preventDefault(); var reader = new FileReader(); reader.onload = function () { alert(this.result); }; reader.readAsText(event.dataTransfer.files[0]); // 以文本方式读取拖动对象中的第一个文件 // reader.readAsDataURL(file); // reader.readAsArrayBuffer(file); } </script> </head> <body> <div ondragover="dragover(event)" ondrop="drop(event)">拖动文件到这里打开</div> </body> </html>
上面的代码中关键部分都有注释,主要就是获取drop事件中传递的文件而已,而drop事件和dragover事件还有些牵扯,在上面注释中都有详细说明。
上面代码获取文件后只是简单的将文本内容进行显示,实际使用时完全可以根据自己的需求对获取到的文件进行处理。
拖动文件到窗口打开这个功能比较简单,主要就是上面那些内容了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。