我们正在使用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 中的规范:
如果数据类型为文本/纯文本:
- 确保根据操作系统和区域设置约定的编码正确
- 根据平台约定规范化行尾
- 将文本放在具有适当操作系统剪贴板格式描述的剪贴板上
否则,如果数据属于必需数据类型列表中列出的类型
将部件放在剪贴板上,并具有适当的操作系统剪贴板格式说明
否则
这留给实现。.
这向我表明浏览器将忽略任何自定义类型。因此,我建议简单地将XML作为字符串保存到剪贴板并使用event.clipboardData.getData('text/plain')