是否可以让javascript将图像复制到剪贴板?我想要复制Chrome在右键/控制点击浏览器中的图片时所拥有的“复制图像”功能。
我见过文本解决方案,也有一些基于Flash的文本解决方案。但我只对图像数据感兴趣。仅限Chrome。不要因为这个要求而关心IE或FF。
答案 0 :(得分:9)
更新:从Chrome 43,Firefox 41,Opera 29和Safari 10开始,任何网站都可以document.execCommand("copy")
和{{ 1}}任何时候。
<强>过时强>:
就像Copy Image to Clipboard from Browser in Javascript?所解释的那样,如果允许任何网站将数据导入/放入用户的操作系统,只是因为她导航到恶意网站,这是一个安全漏洞。
如果您仅定位Chrome,则有两种解决方案。
撰写Chrome扩展程序并要求您的用户进行安装。
撰写Chrome应用并请求您的用户进行安装。您的用户无需运行Chrome应用。安装的Chrome应用程序注册域中的脚本将自动获得此权限。
您的应用/扩展程序必须声明document.execCommand("cut")
权限(请参阅https://developer.chrome.com/extensions/permissions)。
然后,您可以在操纵clipboardWrite
指向要复制的图像后调用document.execCommand("Copy")
。
答案 1 :(得分:1)
在2020年,可以使用异步剪贴板API来完成此操作,请参见此处:https://arnellebalane.com/blog/async-clipboard-api/(包括演示)。