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

HTML5 Clipboard API: paste custom format

我们正在使用 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') 检索数据也不起作用。

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

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

如果数据类型是text/plain:

  1. 确保编码符合 OS 和语言环境约定
  2. 根据平台约定规范化行尾
  3. 将带有适当OS剪贴板格式描述的文本放在剪贴板上

否则,如果数据属于强制数据类型列表中列出的类型

将带有适当OS剪贴板格式描述的部分放在剪贴板上

否则

这留给实施..

这向我暗示,任何自定义类型都将被浏览器忽略。 因此,我建议简单地将 XML 作为字符串保存到剪贴板并使用 event.clipboardData.getData('text/plain')

检索它