通过Javascript将二进制数据复制到剪贴板

pro*_*ype 5 javascript clipboard copy clipboarddata

是否可以将具有特定数据风格的二进制数据放入剪贴板?即使是有黑客攻击的浏览器子集也是可以的。

在本例中,具体目标是复制 Office 对象,该对象是包含 XML 和其他嵌入文件的 ZIP 文件,具有数据风格GVMLOffice 剪贴板格式

我能找到的答案表明文本绝对是可能的。关于二进制的帖子主要是关于图像的,这也是可能的。但我没有看到有关其他数据风格的任何信息。

更新

这似乎是不可能的。以下代码在 Chrome 51、Firefox 46 和 Safari 9.0 中运行,并由 Cmd/Ctrl+C 键盘事件触发。

  • Firefox 仅将文本和 html 复制到剪贴板
  • Chromium 复制<b>Hello binary!</b>但作为数据风格org.chromium.web-custom-datacustom/binary在文本中嵌入零填充的十六进制。
  • Safari 复制<b>Hello binary</b>为数据风格dyn.ah62d4rv4gu81k3p2su10e4psqf3hw,根本不包含custom/binary

document.addEventListener('copy', function(e){ e.clipboardData.setData('text/plain', 'Hello, world!'); e.clipboardData.setData('text/html', '<b>Hello, html!</b>'); e.clipboardData.setData('custom/binary', '<b>Hello, binary!</b>'); e.preventDefault(); });

以上代码来自https://www.w3.org/TR/clipboard-apis/ 的“示例 1”

如何在 JavaScript 中复制到剪贴板?

https://www.lucidchart.com/techblog/2014/12/02/definitive-guide-copying-pasting-javascript/