代码之家  ›  专栏  ›  技术社区  ›  Maxlisui

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

  •  2
  • Maxlisui  · 技术社区  · 7 年前

    我正在制作一个管理文件的网页。对于一个特性,当将文件悬停在元素上时,我需要知道文件名。重要的是在悬停时获取此信息,而不是在“删除”文件时。

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

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

    let transfer = event.dataTransfer;
    

    item属性包含文件的MIME类型。

    transfer.items
    

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

    transfer.files
    

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

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

    我在一些旧帖子中读到(<2008)这可能是一个安全原因,我不理解。悬停文件和删除文件基本上没有区别(除了释放LMB)。

    感谢您的帮助:)

    1 回复  |  直到 7 年前
        1
  •  2
  •   Julien Grégoire    7 年前

    如果没有保护系统,这意味着网站可以跟踪你拖过的所有东西。假设您要将文件从查找器移动到其他地方,并且浏览器位于路径中。或者,你将一些文字从word拖到其他应用程序上,甚至在浏览器窗口上停留了很短时间。您的网站可以访问所有这些内容,而用户不需要与之交互。

    释放鼠标是用户的一种自愿行为,明确表示他希望将拖动的任何数据传输到特定网页。

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