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> |