秒懂 javascript 拖拽上传文件
时间:2022-05-06
本文章向大家介绍秒懂 javascript 拖拽上传文件,主要内容包括代码、说明、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
代码
直接贴代码了,复制到本地 .html 文件中即可实现以上演示效果:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>drag file</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
.container {
width: 60%;
max-width: 600px;
height: 320px;
padding: 15px;
margin: 20px auto 0;
border-radius: 10px;
background-color: #fce4ec;
}
.dashboard {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 12px;
border: 3px dashed #F8BBD0;
border-radius: 5px;
font-size: 20px;
color: #2c1612;
cursor: text;
white-space: pre-wrap;
/*word-break: break-all;*/
word-wrap: break-word;
overflow-y: auto;
}
</style>
</head>
<body>
<div class="container">
<div id="dashboard" class="dashboard"></div>
</div>
<script type="text/javascript">
var dashboard = document.getElementById("dashboard")
dashboard.addEventListener("dragover", function (e) {
e.preventDefault()
e.stopPropagation()
})
dashboard.addEventListener("dragenter", function (e) {
e.preventDefault()
e.stopPropagation()
})
dashboard.addEventListener("drop", function (e) {
// 必须要禁用浏览器默认事件
e.preventDefault()
e.stopPropagation()
var files = this.files || e.dataTransfer.files
var reader = new FileReader()
reader.readAsText(files[0], 'utf-8')
reader.onload = function (evt) {
var text = evt.target.result
dashboard.innerText = text
}
})
</script>
</body>
</html>
说明
- 需对目标区域添加 drop 事件监听,在回调 中通过 参数 e.dataTransfer.files 获取被拖拽上传的文件数组。
- 需要在 dragover 和 dragenter 事件监听中阻止浏览器默认行为。
- 代码是用 utf-8 方式解析文件内容的,如果 文件或网页 编码不是 utf-8 的话,将会出现乱码。
- Python快速入门
- Jquer学习之jQuery(function(){})与(function(){})(jQuery)之间的区别
- 服务端常见性能隐患分享
- ExtJs学习笔记(19)_复杂Form示例
- Linux快速入门01-基础概念
- SQL学习之Insert的特殊用法(插入检索出的数据,表之间的数据复制)
- 对php多态的理解
- JavaScript值延迟脚本和异步脚本
- JavaScript之arguments.callee
- JavaScript之面向对象学九(原型式继承和寄生式继承)
- ExtJs学习笔记(18)_ExtJs嵌入FCK示例
- Html与CSS快速入门01-基础概念
- 利用Fck的javascript-API创建fck编辑器
- ASPNET_WEBAPI快速学习02
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法