二进制数据事件
paste事件
监听右键粘贴时间提供一个clipboardData的属性,其实是DataTransfer类型的对象。如果该属性有items属性,那么就可以查看items中是否有图片类型的数据了。Chrome有该属性,Safari没有。

files、items、types属性是含有内容,但无法具体显示,可通过clipboard.items[0]获取
属性
类型
说明
dropEffect
String
默认是 none
effectAllowed
String
默认是 uninitialized
files
FileList
粘贴操作为空List
items
DataTransferItemList
剪切板中的各项数据
types
Array
剪切板中的数据类型 该属性在Safari下比较混乱
items是一个DataTransferItemList对象,有kind和type属性:
属性
说明
kind
一般为string或者file
type
具体的数据类型,例如具体是哪种类型字符串或者哪种类型的文件,即MIME-Type
以及两个方法getAsFile与getAsString:
方法
参数
说明
getAsFile
空
如果kind是file,可以用该方法获取到文件
getAsString
回调函数
如果kind是string,可以用该方法获取到字符串,字符串需要用回调函数得到,回调函数的第一个参数就是剪切板中的字符串
一般types是剪切板的数据类型,常见的值有text/plain、text/html、Files。
FileReader
FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件。 使用 File 或 Blob 对象指定要读取的文件或数据。
File 关于文件的信息对象,来自用户在一个<input>元素上选择文件后返回的 FileList 对象,也可以是来自由拖放操作生成的 DataTransfer 对象,或者来自 HTMLCanvasElement 上的 mozGetAsFile() API。
BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。File 接口基于Blob。
可使用new Blob()函数构造一个Blob对象:
FileReader示例
FileReader.onload事件在读取操作完成时触发。 当 FileReader 读取文件的方式为 readAsArrayBuffer, readAsBinaryString, readAsDataURL 或者 readAsText 的时候,会触发一个 load 事件。从而可以使用 FileReader.onload 属性对该事件进行处理,回调中包含一个事件对象(event)参数。
拖放事件与DataTransfer
一个拖放(drap)的实现:用户用鼠标选中一个可拖动的(draggable)元素,移动鼠标到一个可放置的(droppable)元素,然后释放鼠标。 期间会触发一系列事件,回调中都包含了一个事件对象。
在进行拖放操作时,回调函数里的事件对象参数(DragEvent),包含一个DataTransfer属性。DataTransfer 对象用来保存被拖动的数据。它可以保存一项或多项数据、一种或者多种数据类型。
事件类型
drag
拖动元素或选择文本时触发此事件。
dragend
当拖动操作结束时(释放鼠标按钮或按下退出键),会触发此事件。
dragenter
当拖动的元素或选择文本输入有效的放置目标时,会触发此事件。
dragexit
当元素不再是拖动操作的选择目标时触发此事件。
dragleave
当拖动的元素或文本选择离开有效的放置目标时,会触发此事件。
dragover
当将元素或文本选择拖动到有效放置目标(每几百毫秒)上时,会触发此事件。
dragstart
当用户开始拖动元素或选择文本时触发此事件。
drop
当在有效放置目标上放置元素或选择文本时触发此事件。
https://developer.mozilla.org/zh-CN/docs/Web/API/HTML_Drag_and_Drop_API https://developer.mozilla.org/zh-CN/docs/Web/API/DataTransfer
Last updated
Was this helpful?