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:
- 确保编码符合 OS 和语言环境约定
- 根据平台约定规范化行尾
- 将带有适当OS剪贴板格式描述的文本放在剪贴板上
否则,如果数据属于强制数据类型列表中列出的类型
将带有适当OS剪贴板格式描述的部分放在剪贴板上
否则
这留给实施..
这向我暗示,任何自定义类型都将被浏览器忽略。
因此,我建议简单地将 XML 作为字符串保存到剪贴板并使用 event.clipboardData.getData('text/plain')
检索它
我们正在使用 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:
- 确保编码符合 OS 和语言环境约定
- 根据平台约定规范化行尾
- 将带有适当OS剪贴板格式描述的文本放在剪贴板上
否则,如果数据属于强制数据类型列表中列出的类型
将带有适当OS剪贴板格式描述的部分放在剪贴板上
否则
这留给实施..
这向我暗示,任何自定义类型都将被浏览器忽略。
因此,我建议简单地将 XML 作为字符串保存到剪贴板并使用 event.clipboardData.getData('text/plain')