DataTransferItem:getAsFileSystemHandle() 方法
DataTransferItem
接口的 getAsFileSystemHandle()
方法返回一个 FileSystemFileHandle
(若拖动的项目是文件),或 FileSystemDirectoryHandle
(若拖动的项目是目录)。
语法
js
getAsFileSystemHandle()
参数
无。
返回值
一个 Promise
。
如果项目的 kind
属性为 "file"
,并且在 dragstart
或 drop
事件处理器中访问此项目,则返回的 promise 兑现一个 FileSystemFileHandle
(若拖动的项目是文件)或 FileSystemDirectoryHandle
(若拖动的项目是一个目录)。
否则,promise 会兑现 null
。
异常
无。
示例
本示例使用 getAsFileSystemHandle()
方法返回一个表示放置的项目的文件句柄。
js
elem.addEventListener("dragover", (e) => {
// 阻止导航
e.preventDefault();
});
elem.addEventListener("drop", async (e) => {
// 阻止导航
e.preventDefault();
// 处理所有条目
for (const item of e.dataTransfer.items) {
// 对于文件/目录条目,kind 将是“file”
if (item.kind === "file") {
const entry = await item.getAsFileSystemHandle();
if (entry.kind === "file") {
// 如果条目是文件则运行代码
} else if (entry.kind === "directory") {
// 如果条目是目录则运行代码
}
}
}
});
规范
Specification |
---|
File System Access # dom-datatransferitem-getasfilesystemhandle |
浏览器兼容性
BCD tables only load in the browser