我正在开发一个用于管理文件的网页。对于一个功能,我需要知道将文件悬停在元素上时的文件名。在HOVERING中获取此信息非常重要,而不是在“丢弃”文件时。
我使用设置创建了JSFiddle。当您将文件悬停在标记的div上时,您将不断获得有关文件类型的一些信息。
您可以从悬停事件中获取dataTransfer
let transfer = event.dataTransfer;
item属性包含文件的MIME类型。
transfer.items
但是,您无法获得有关该文件的完整信息(名称,大小......)。
transfer.files
删除文件时,我会获得有关文件的完整信息
transfer.files.lenght //Equal to amount of files dropped
我在一些旧帖子(< 2008)中读到这可能是一个安全原因,我不明白。悬停文件或丢弃文件(除了发布LMB之外)基本没有区别。
谢谢你的帮助:)
答案 0 :(得分:2)
如果没有保护系统,这意味着网站可以跟踪您拖动它的所有内容。我们假设您要将文件从您的查找器移动到其他位置,并且您的浏览器位于路径中。或者你将一些文字从单词拖到另一个应用程序,你甚至只是在浏览器窗口上走了一会儿。您的网站可以访问所有这些内容,而无需用户与之交互。
鼠标释放是用户的一项自愿行动,明确表示他希望将他拖动的任何数据传输到特定网页。
请注意,如果您控制 dragstart ,则可以获取相关信息。但是,如果您的页面不是开始拖动的实际代理,那么在项目被删除之前您不能假设用户希望内容对您的页面可见。