You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CKEditor5:如何在复制/剪切时向剪贴板文本添加内容?

CKEditor 捕获复制/剪切事件并修改剪贴板内容
  • 你之前的事件监听没触发,核心问题出在直接访问了ClassicEditor类的model.document,而非实际创建出来的编辑器实例的对应对象。ClassicEditor.create()返回的是一个Promise,得在Promise的then回调里拿到编辑器实例,才能正确绑定事件。

  • 正确的实现方式是等编辑器创建完成后,通过实例监听clipboardOutput事件,再修改事件数据里的内容,把指定文本追加到剪贴板输出末尾。完整示例代码如下:

ClassicEditor
    .create(document.querySelector('#editor'), {})
    .then(editor => {
        // 监听 clipboardOutput 事件
        editor.model.document.on('clipboardOutput', (eventInfo, data) => {
            // 获取当前要复制的纯文本内容
            const originalText = data.content.toPlainText();
            // 追加你需要的指定内容
            const modifiedText = originalText + '\n\n【这里是要追加的内容】';
            
            // 将修改后的文本转换回CKEditor视图格式,替换剪贴板输出
            data.content = editor.data.processor.toView(modifiedText);
        });
    })
    .catch(error => {
        console.error(error);
    });
  • 补充说明:
    • clipboardOutput事件的data.content是CKEditor的视图结构对象,先用toPlainText()转成纯文本修改,再用editor.data.processor.toView()转回去,才能正确替换剪贴板的内容。
    • 如果需要追加HTML格式的内容,不用转纯文本,直接操作data.content的视图元素即可,比如创建一个<p>标签追加到末尾。

内容的提问来源于stack exchange,提问作者Lukas Kahwe Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:35:20