悬停在元素上时的文件信息

File information while HOVERING over element

我正在制作一个用于管理文件的网页。对于一项功能,我需要知道将文件悬停在元素上时的文件名。在悬停时获取此信息很重要,而不是在 "dropping" 文件时获取此信息。

我用设置创建了一个 JSFiddle。当您将文件悬停在标记的 div 上时,您会不断获得有关文件类型的一些信息。

您可以从悬停事件中获取数据传输

let transfer = event.dataTransfer;

项目 属性 包含文件的 MIME 类型。

transfer.items

但是,您无法获得有关文件的完整信息(名称、大小...)。

transfer.files

删除文件时,我会得到有关文件的完整信息

transfer.files.lenght //Equal to amount of files dropped

我在一些旧帖子(< 2008)中读到这可能是出于安全原因,我不明白。悬停文件或删除文件基本上没有区别(除了释放你的 LMB)。

感谢您的帮助:)

没有保护系统,这意味着网站可以跟踪您拖过它的所有内容。假设您想将文件从查找器移动到其他地方,并且您的浏览器在路径中。或者您将一些文本从 word 拖到其他应用程序,并且您碰巧在浏览器上移动了一小会儿 window。您的网站可以访问所有这些内容,而用户不想与之交互。

鼠标松开是用户的自觉动作,表明他想将他拖动的任何数据传输到特定网页。

请注意,如果您控制 dragstart,您可以获得信息。但是,如果您的页面不是开始拖动的实际代理,那么在项目被放下之前,您不能假设用户希望内容对您的页面可见。