TinyMCE 5:插入时始终将 class 添加到 blockquote 元素(通过单击工具栏上的 "blockquote" 按钮)

TinyMCE 5: Always add a class to blockquote element when inserting it (by clicking on the "blockquote" button on toolbar)

当用户单击“blockquote”按钮(位于工具栏上)以插入 blockquote 元素时:

然后 TinyMCE 将插入 <blockquote> HTML 元素而没有任何 class。我想更改它,以便它 always 插入 <blockquote> 和 class myClass (但 only when通过单击“工具栏”按钮插入块引用,而不是在加载时插入):

<blockquote class="myClass">
    ...
    </p>
</blockquote>

你知道这是怎么回事吗done/achieved?

我正在使用 TinyMCE 5

Fiddle: http://fiddle.tinymce.com/Guhaab


更新:

抱歉,我的问题不够精确:我希望仅针对通过按钮添加的元素添加此 class,加载时 而不是

更新答案:

提问者补充:

I want this class to be added just for elements added via the button, not when loaded.

在那种情况下: 通过应用称为(您猜对了)“blockquote”的预定义默认格式,将块引用添加到内容中。当应用于内容时,您可以覆盖该默认样式以包含 class:

formats: {
    // Changes the default format for blockquote to have a class of 'foo'
    blockquote: { block: 'blockquote', classes: 'foo' }
  },

这是一个微型 Fiddle 演示:

http://fiddle.tinymce.com/svhaab/1

以下是有关 TinyMCE 格式的信息:

https://www.tiny.cloud/docs/configure/content-formatting/


原答案:

一种选择是使用节点过滤器将此 class 添加到所有 <blockquote> 元素:

https://www.tiny.cloud/docs/api/tinymce.dom/tinymce.dom.serializer/#addnodefilter https://www.tiny.cloud/docs/api/tinymce.html/tinymce.html.domparser/#addnodefilter

这是一个微型 Fiddle 示例: http://fiddle.tinymce.com/hvhaab/1 (预计到达时间正确 Fiddle link)

注意:如 Fiddle 中所示,此方法还将添加 class 到 <blockquote> 元素,这些元素作为现有内容加载或粘贴到编辑器中 - 而不仅仅是<blockquote> 个通过按钮添加的元素。

此外,如果 <blockquote> 元素已经有一个(不同的)class,这会将您的自定义 class 添加到属性中。