是否可以将二进制数据放入具有特定数据风格的剪贴板中?即使是带有黑客攻击的浏览器子集也是可以的。
在这种情况下,具体目标是复制Office对象,该对象是包含XML和其他嵌入文件的ZIP文件,数据风格为GVML
(Office clipboard format)
我能找到的答案表明文字是文字绝对是可能的。关于二进制的帖子主要是关于图像,这也是可能的。但我没有看到任何其他数据风格。
更新
看来这可能无法实现。以下代码在Chrome 51,Firefox 46和Safari 9.0中运行,由Cmd / Ctrl + C键盘事件触发。
<b>Hello binary!</b>
但作为数据风格org.chromium.web-custom-data
并将custom/binary
嵌入文本中以零填充的十六进制。<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/