此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
DataTransferItem:getAsFileSystemHandle() 方法
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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> |
浏览器兼容性
Loading...