20

是否可以让javascript将图像复制到剪贴板?当您右键/控制单击浏览器中的图像时,我希望复制 Chrome 具有的“复制图像”功能。

我已经看到了文本解决方案,以及一些基于 Flash 的文本解决方案。但我只对图像数据感兴趣。并且仅在 Chrome 中。对于这个要求,不要关心 IE 或 FF。

4

2 回答 2

9

更新:从Chrome 43Firefox 41Opera 29Safari 10开始,任何网站都可以document.execCommand("copy")随时随地document.execCommand("cut")进行。


过时的

就像在 Javascript 中将图像从浏览器复制到剪贴板一样?解释说,如果任何网站仅仅因为她导航到恶意网站而被允许将数据输入/放入用户的操作系统,这是一个安全漏洞。

如果您仅针对 Chrome,则有两种解决方案。

  1. 编写一个 Chrome 扩展程序并要求您的用户安装它。

  2. 编写一个 Chrome 应用程序并要求您的用户安装它。您的用户无需运行您的 Chrome 应用程序。已安装的 Chrome 应用程序注册的域中的脚本将自动获得此权限。

您的应用程序/扩展程序必须声明clipboardWrite特权(请参阅https://developer.chrome.com/extensions/permissions)。

然后,您可以document.execCommand("Copy")在操纵window.selection指向要复制的图像后调用。

于 2015-04-03T08:04:53.813 回答
2

在 2020 年,可以使用异步剪贴板 API 来完成,请参见此处:https ://arnellebalane.com/blog/async-clipboard-api/ (包括演示)。

于 2020-04-01T09:36:39.297 回答