拖放 *FROM* 浏览器?

Posted

技术标签:

【中文标题】拖放 *FROM* 浏览器?【英文标题】:Drag and Drop *FROM* a browser? 【发布时间】:2012-10-29 00:39:22 【问题描述】:

将项目拖入浏览器已有很好的文档记录,而 html5 使这更容易。

但是,我想知道是否以及如何将'n' drop 拖出浏览器。

在这种情况下,您将拥有一个网页元素(例如锚点),用户将单击该网页元素并将浏览器的 OUT 拖放到放置目标上,然后浏览器将发送链接的对象(例如,href'd 文件)直接到放置目标,而不是开始通常的下载。

有人知道这是否可行吗?

【问题讨论】:

不,绝对不是。 @woz:我很确定确实如此。尝试将链接拖动到 .mp3 文件或其他文件,它不会将文件下载到该位置吗?还是只是在您的桌面上创建一个链接? @MadaraUchiha 这对我不起作用。从网站拖放到您的计算机将是一个很大的安全问题,我怀疑它永远不会实现。 您可以从浏览器拖放,但具体操作取决于所使用的浏览器。在某些浏览器中,将链接拖放到桌面会将文件复制到计算机。 我刚刚尝试使用 Firefox:拖动链接:它会创建一个快捷方式。拖动图片:将图片复制到电脑上。 【参考方案1】:

您正在尝试做的事情可以在这里找到:https://ryanseddon.com/html5/gmail-dragout/。

这是一个关于如何将锚标签拖到桌面的说明,文件将在那里下载。 (或者将锚标签拖到另一个应用程序上,操作系统会适当处理。)

我还没有想到的是,如何通过 HTML5 拖放多个链接(而不是一次只有一个),而不必求助于 jquery 之类的外部资源库。

【讨论】:

是 Dropbox 让我想到了这个问题。我注意到使用网络应用程序可以将单个文件拖出,但不能突出显示多个文件,然后将它们全部下载。这让我很失望。我想不出它会怎么做。 jQuery 是否可以以某种方式拦截它并将每个文件的链接单独发送到操作系统(即一个接一个)?我很可能会在我正在开发的网络应用程序中遇到类似的要求。 @RyanWilliams 您可以生成一个包含每个文件 ID 的链接,并为单个文件执行下载事件,这实际上是单个包中每个选定文件的 zip。我不相信您可以从单个事件创建多个下载(虽然我没有尝试过,但计划自己使用 zip 方法)。 这篇文章很棒,但是,如果您想在本地环境中执行此操作怎么办。我有一个监控存储的本地 Angular2/Node 应用程序。我想将一个文件从我的 Web GUI 拖放到另一个应用程序中。这似乎可以工作,除了它实际上传输文件,我只想传输一个符号链接。有人见过吗? 可以将多个图像从浏览器拖到 Word 中:选择包含多个图像的一部分的 html,拖到 MS Word -> 那里。不确定这是否可以普遍用于“文件”,除非它们以某种方式嵌入到 HTML 中。【参考方案2】:

从概念上讲是的,这是可能的。但这将是操作系统/应用程序处理下降来决定如何处理它。实际上,您可以完全按照您使用 chrome 的描述进行操作。打开一个新的 chrome 窗口并拖动一个链接到它。它在那里导航。将链接拖到您的桌面。在 Win7 中,它会创建一个指向该页面的快捷方式/链接。

您所说的不是 HTML 拖放,而是实际上在操作系统/应用程序级别。并且必须使用应用程序语言而不是浏览器 HTML 来处理。

【讨论】:

以上是关于拖放 *FROM* 浏览器?的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 拖放事件和 setDragImage 浏览器支持

jQuery 拖放 - 只允许从浏览器外部拖动

jquery拖放挂起或卡住Android浏览器

HTML5 拖放:防止浏览器和浏览器窗口之间的 D&D

高级功能使用拖放

Chrome 跨框架拖放:为啥它可以跨浏览器工作?