获取 onCopy 钩子(插件)中的复制内容(剪贴板内容)

5

我一直在努力地将复制的片段传递到onCopy钩子中,但无济于事。

我尝试使用event.clipboardData...来实现。

const { clipboardData } = event;
const encoded = clipboardData.getData("application/x-slate-fragment");

但是它看起来很空。我也试过使用getEventTransfer工具,但它返回{type: 'unknow'}

这里是我一直在测试的 CodeSandBox

1个回答

1
我认为使用saltejs无法获取片段,如果您查看文档https://docs.slatejs.org/v/v0.47/slate-react/utils#functions,在这里也要求先创建片段,然后将数据复制到其中。所以我认为您可以使用JavaScript来实现,这只是一个建议。
如果您只想获取复制的文本,则尝试在onCopy函数内使用纯JavaScript。 const copied_text = window.getSelection().toString(); 如果您想获取已复制文本的片段,请在onCopy函数中使用event.target.outerHTMLevent.target.innerHTML
如果您想创建另一个复制的片段,则可以执行以下操作。

document.createRange().createContextualFragment(event.target.outerHTML)


我感谢你的回答,但是我想找到一种方法来使用原始的复制对象(而不仅仅是文本)进行操作。此外,InnertHTML 和 outerHTML 包含整个元素,即使只是复制元素的一部分。 - Apeiron
我需要获取片段对象以注入新数据,然后在onPaste钩子中获取该数据... :/ - Apeiron
我还没有得到复制的片段...你告诉我获取文本,但这并不完全是我要求的。 - Apeiron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接