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

HTML5 Clipboard API: paste custom format

本文关键字:自定义 格式 剪贴板 API HTML5      更新时间:2023-09-26

我们正在使用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 中的规范:

如果数据类型为文本/纯文本:

  1. 确保根据操作系统和区域设置约定的编码正确
  2. 根据平台约定规范化行尾
  3. 将文本放在具有适当操作系统剪贴板格式描述的剪贴板上

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

将部件放在剪贴板上,并具有适当的操作系统剪贴板格式说明

否则

这留给实现。.

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