HTML5剪贴板API:粘贴自定义格式

时间:2016-03-09 09:36:43

标签: javascript html5 clipboard clipboarddata

我们正在使用3D CAD应用程序,它允许以特殊格式将3D数据复制到剪贴板。我们现在想要在浏览器中粘贴这个3D数据(基本上它是结构化为XML)。

我尝试了很多HTML5剪贴板API,但除了文字和HTML之外没有任何作用,clipboardData总是空白......

即使我记录了类型,除了文本和HTML之外,它还是空的: console.log(event.clipboardData.types);

使用event.clipboardData.getData('application/x-egr-eai-basket-cutbuffer-uncompressed')检索数据也不起作用。

甚至可以在浏览器中粘贴这样的自定义格式吗?

1 个答案:

答案 0 :(得分:1)

似乎不直接支持剪贴板的自定义数据格式。根据{{​​3}}中的规范:

如果数据类型是text / plain:

  1. 确保每个操作系统和区域设置约定的编码正确
  2. 根据平台惯例规范化行结尾
  3. 使用适当的操作系统剪贴板格式说明将文本放在剪贴板上
  4. 否则,如果数据属于强制数据类型列表中列出的类型

    使用适当的OS剪贴板格式说明将部件放在剪贴板上

    ,否则

    这是留给实施的。

    这表明浏览器会忽略任何自定义类型。 因此,我建议只需将XML作为字符串保存到剪贴板并使用event.clipboardData.getData('text/plain')

    检索它。