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

时间:2016-06-05 18:38:09

标签: javascript copy clipboard clipboarddata

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

在这种情况下,具体目标是复制Office对象,该对象是包含XML和其他嵌入文件的ZIP文件,数据风格为GVMLOffice clipboard format

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

更新

看来这可能无法实现。以下代码在Chrome 51,Firefox 46和Safari 9.0中运行,由Cmd / Ctrl + C键盘事件触发。

  • Firefox仅将text和html复制到剪贴板
  • Chromium复制<b>Hello binary!</b>但作为数据风格org.chromium.web-custom-data并将custom/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”的上述代码

How do I copy to the clipboard in JavaScript?

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

0 个答案:

没有答案