HTML 拖放界面
使 Web 应用程序能够接受
在
网页上拖放的文件。在拖放操作期间,被拖动的文件和目录项分别与文件条目和目录条目相关联。如果拖动的项目是文件,该DataTransferItem.getAsFileSystemHandle()
方法返回带有对象的承诺,如果拖动的项目是目录,则返回带有对象的承诺。下面的清单显示了这一点。请注意,拖放接口
将用于文件和目录,而文件系统访问 API
将用于文件和目录。FileSystemFileHandle
FileSystemDirectoryHandle
DataTransferItem.kind
"file"
FileSystemHandle.kind
"file"
"directory"
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) {
// Careful: `kind` will be 'file' for both file
// _and_ directory entries.
if (item.kind === 'file') {
const entry = await item.getAsFileSystemHandle();
if (entry.kind === 'directory') {
handleDirectoryEntry(entry);
} else {
handleFileEntry(entry);
}
}
}
});