如何从浏览器剪贴板api获取动画gif图像?

mil*_*hov 6 javascript clipboard google-chrome copy-paste clipboarddata

我正在测试以下代码,当我复制动画gif并将其粘贴到网页时,我image/png在控制台中看到- 而不是image/gif按预期方式.

为什么?

document.onpaste = function(event) {
  console.log(event.clipboardData.items[1]['type']); // 'image/png'
};
Run Code Online (Sandbox Code Playgroud)

我怎样才能匹配gif图像?

例如,您可以使用 gif图像在此jsfiddle上测试它.

Chr*_*ton 5

CF_GIF 剪贴板格式很少使用。大多数应用程序仅将图像作为 CF_BITMAP、CF_ENHMETAFILE 或 CF_DIB 复制到剪贴板。然后,当您粘贴时,数据将转换为目标应用程序喜欢的任何格式,例如 PNG 或位图。因此,在您的情况下,GIF 可能作为位图复制到剪贴板,然后在粘贴时转换为 PNG。GIF 的所有动画帧都丢失了。为了保存,您需要使用 CF_HDROP、CF_FileName 等进行拖放或模拟文件粘贴。