如何粘贴到包含在自定义 Quill Embed Blot 中的文本输入?

How to paste into a text input contained within a custom Quill Embed Blot?

我已经成功地使用 Quill 创建了一个扩展 Embed 印迹的自定义印迹。我的印迹包含一个文本输入字段和一个按钮。

当我将光标放在文本输入框内并尝试粘贴一些文本时,文本被粘贴到 Quill 编辑器中,就在我的印迹之外。

我知道剪贴板模块处理粘贴,我已经查看了该模块,但我不确定如何继续。

我的想法是检测焦点何时位于编辑器中的任何输入元素上。如果是,则应禁用剪贴板模块或以其他方式允许正常的粘贴行为。

我最初的想法是注册我自己的扩展剪贴板模块并在那里进行检测。但是,我不确定如何指示剪贴板退出并执行正常的粘贴行为。

感谢任何指导!

我一直面临着完全相同的问题。您必须创建自己的 Keyboard 模块来扩展默认模块以防止这种情况发生,方法是重写 onPaste 方法。

这是我使用的:

import Quill from 'quill'
const QuillClipboard = Quill.import('modules/clipboard')

export default class Clipboard extends QuillClipboard {
  onPaste (event) {
    // Contenteditables, inputs and textarea are embeded into rich elements
    // Do not capture the copy paste with Quill
    if (['DIV', 'INPUT', 'TEXTAREA'].indexOf(event.target.nodeName) !== -1) {
      return
    }

    super.onPaste(event)
  }
}

Quill.register('modules/clipboard', Clipboard, true)