文本格式化引擎类。此类用于对当前选区或特定节点应用粗体、斜体、字号等格式。该引擎旨在替代浏览器默认的execCommand格式化逻辑,因为后者存在不一致且有问题的行为。

示例

tinymce.activeEditor.formatter.register('mycustomformat', {
  inline: 'span',
  styles: { color: '#ff0000' }
});

tinymce.activeEditor.formatter.apply('mycustomformat');

摘要

方法

名称摘要定义者

apply()

将指定格式应用于当前选区或指定节点。

Formatter

canApply()

返回true/false表示指定格式是否可应用于当前选区。目前仅检查选择器格式的状态,对其他格式类型均返回true。

Formatter

closest()

从一组格式中查找当前选区的最近匹配格式。

Formatter

formatChanged()

当前选区匹配或不匹配格式时执行指定回调函数。

Formatter

get()

按名称返回格式,未指定名称时返回所有格式。

Formatter

getCssText()

返回指定格式的预览CSS文本。

Formatter

has()

返回true或false表示指定名称的格式是否已注册。

Formatter

match()

根据指定格式名称匹配当前选区或指定节点。

Formatter

matchAll()

将当前选区与格式数组匹配并返回包含匹配格式的新数组。

Formatter

matchNode()

返回true/false表示指定节点是否具有指定格式。

Formatter

register()

按名称注册特定格式。

Formatter

remove()

从当前选区或指定节点移除指定格式。

Formatter

toggle()

切换指定格式的开启/关闭状态。

Formatter

unregister()

按名称注销特定格式。

Formatter

方法

apply()

apply(name: String, vars: Object, node: Node)

将指定格式应用于当前选区或指定节点。

参数

  • name (String) - 要应用的格式名称。

  • vars (Object) - 可选变量列表,用于在应用前替换格式中的变量。

  • node (Node) - 可选节点,默认应用于当前选区。


canApply()

canApply(name: String): Boolean

返回true/false表示指定格式是否可应用于当前选区。目前仅检查选择器格式的状态,对其他格式类型均返回true。

参数

  • name (String) - 要检查的格式名称。

返回值

  • Boolean - true/false表示指定格式是否可应用于当前选区/节点。


closest()

closest(names: Array): String

从一组格式中查找当前选区的最近匹配格式。

参数

  • names (Array) - 要检查的格式名称。

返回值

  • String - 最近匹配的格式名称或null。


formatChanged()

formatChanged(formats: String, callback: Function, similar: Boolean, vars: Object)

当前选区匹配或不匹配格式时执行指定回调函数。

参数

  • formats (String) - 要检查的格式名称(逗号分隔列表)。

  • callback (Function) - 格式切换/变更时携带状态和参数的回调函数。

  • similar (Boolean) - true/false表示匹配是否处理相似或精确格式。

  • vars (Object) - 限制监视的格式仅当应用的变量等于vars时匹配。


get()

get(name: String): Array | Object

按名称返回格式,未指定名称时返回所有格式。

参数

  • name (String) - 可选检索名称。

返回值

  • Array - 包含所有已注册格式或特定格式的数组/对象。

  • Object - 包含所有已注册格式或特定格式的数组/对象。


getCssText()

getCssText(format: String | Object): String

返回指定格式的预览CSS文本。

示例

const cssText1 = editor.formatter.getCssText('bold');
const cssText2 = editor.formatter.getCssText({ inline: 'b' });

参数

  • format (String | Object) - 要生成预览 CSS 文本的格式。

返回值

  • String - 指定格式的 CSS 文本。


has()

has(name: String): Boolean

如果指定名称注册了格式,则返回 true 或 false。

参数

  • name (String) - 要检查是否存在格式的格式名称。

返回值

  • Boolean - 如果指定名称的格式存在,则为 True/False。


match()

match(name: String, vars: Object, node: Node, similar: Boolean): Boolean

将当前选区或指定节点与指定的格式名称进行匹配。

参数

  • name (String) - 要匹配的格式名称。

  • vars (Object) - 在检查之前要替换的可选变量列表。

  • node (Node) - 要检查的可选节点。

  • similar (Boolean) - 可选参数,用于指定应检查相似的格式,而不仅仅是完全匹配的格式。

返回值

  • Boolean - 如果指定的选区/节点与格式匹配,则为 true/false。


matchAll()

matchAll(names: Array, vars: Object): Array

将当前选区与格式数组进行匹配,并返回包含匹配格式的新数组。

参数

  • names (Array) - 要匹配的格式名称。

  • vars (Object) - 在检查之前要替换的可选变量列表。

返回值

  • Array - 包含匹配格式的数组。


matchNode()

matchNode(node: Node, name: String, vars: Object, similar: Boolean): Object

如果指定节点具有指定格式,则返回 true/false。

参数

  • node (Node) - 要检查格式的节点。

  • name (String) - 要检查的格式名称。

  • vars (Object) - 在检查之前要替换的可选变量列表。

  • similar (Boolean) - 匹配具有相似属性的格式。

返回值

  • Object - 如果匹配则返回格式对象,如果不匹配则返回 undefined。


register()

register(name: Object | String, format: Object | Array)

按名称注册特定格式。

参数

  • name (Object | String) - 格式的名称,例如“bold”。

  • format (Object | Array) - 可选的格式对象或格式变体数组,只有当第一个参数是对象时才能省略。


remove()

remove(name: String, vars: Object, node: Node | Range)

从当前选区或指定节点中移除指定格式。

参数

  • name (String) - 要移除的格式名称。

  • vars (Object) - 在移除之前要在格式内替换的可选变量列表。

  • node (Node | Range) - 要从其中移除格式的可选节点或 DOM 范围,默认为当前选区。


toggle()

toggle(name: String, vars: Object, node: Node)

切换指定格式的开启/关闭状态。

参数

  • name (String) - 要应用/移除的格式名称。

  • vars (Object) - 在应用/移除之前要在格式内替换的可选变量列表。

  • node (Node) - 要应用或移除格式的可选节点。默认为当前选区。


unregister()

unregister(name: String)

按名称注销特定格式。

参数

  • name (String) - 格式的名称,例如“bold”。