DataTransferItem:getAsFileSystemHandle() 方法
getAsFileSystemHandle()
是DataTransferItem
接口的方法,如果拖动的项目是文件,则返回FileSystemFileHandle
;如果拖动的项目是目录,则返回FileSystemDirectoryHandle
。
语法
js
getAsFileSystemHandle()
参数
无。
返回值
一个Promise
。
如果项目的kind
属性为"file"
,并且在dragstart
或drop
事件处理程序中访问此项目,则如果拖动的项目是文件,则返回的 Promise 将以FileSystemFileHandle
解析;如果拖动的项目是目录,则返回的 Promise 将以FileSystemDirectoryHandle
解析。
否则,Promise 将以null
解析。
异常
无。
示例
此示例使用getAsFileSystemHandle()
方法返回已放置项目的文件句柄。
js
elem.addEventListener("dragover", (e) => {
// Prevent navigation.
e.preventDefault();
});
elem.addEventListener("drop", async (e) => {
// Prevent navigation.
e.preventDefault();
// Process all of the items.
for (const item of e.dataTransfer.items) {
// kind will be 'file' for file/directory entries.
if (item.kind === "file") {
const entry = await item.getAsFileSystemHandle();
if (entry.kind === "file") {
// run code for if entry is a file
} else if (entry.kind === "directory") {
// run code for is entry is a directory
}
}
}
});
规范
规范 |
---|
文件系统访问 # dom-datatransferitem-getasfilesystemhandle |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。