此类将 HTML 代码解析为类似 DOM 的节点结构,它会删除多余的空格,并确保节点树符合指定的 schema。例如:<p>a<p>b</p>c</p> 将变为 <p>a</p><p>b</p><p>c</p>。

示例

const parser = tinymce.html.DomParser({ validate: true }, schema);
const rootNode = parser.parse('<h1>content</h1>');

摘要

方法

名称摘要定义者

addAttributeFilter()

向解析器添加一个属性过滤器函数,解析器将收集具有指定属性的节点,然后在完成文档解析后执行回调函数。

DomParser

addNodeFilter()

向解析器添加一个节点过滤器函数,解析器将按名称收集指定的节点,然后在完成文档解析后执行回调函数。

DomParser

parse()

将指定的 HTML 字符串解析为类似 DOM 的节点树并返回结果。

DomParser

removeAttributeFilter()

从解析器中移除一个属性过滤器函数,或者移除解析器中所有指定属性名称的过滤器函数。

DomParser

removeNodeFilter()

从解析器中移除一个节点过滤器函数,或者移除解析器中所有指定节点名称的过滤器函数。

DomParser

方法

addAttributeFilter()

addAttributeFilter(name: String, callback: Function)

向解析器添加一个属性过滤器函数,解析器将收集具有指定属性的节点,然后在完成文档解析后执行回调函数。

示例

parser.addAttributeFilter('src,href', (nodes, name) => {
  for (let i = 0; i < nodes.length; i++) {
    console.log(nodes[i].name);
  }
});

参数

  • name (String) - 要收集的属性的逗号分隔列表。

  • callback (Function) - 收集节点后要执行的回调函数。


addNodeFilter()

addNodeFilter(name: String, callback: Function)

向解析器添加一个节点过滤器函数,解析器将按名称收集指定的节点,然后在完成文档解析后执行回调函数。

示例

parser.addNodeFilter('p,h1', (nodes, name) => {
  for (var i = 0; i < nodes.length; i++) {
    console.log(nodes[i].name);
  }
});

参数

  • name (String) - 要收集的节点的逗号分隔列表。

  • callback (Function) - 收集节点后要执行的回调函数。


parse()

parse(html: String, args: Object): tinymce.html.Node

将指定的 HTML 字符串解析为类似 DOM 的节点树并返回结果。

示例

const rootNode = tinymce.html.DomParser({...}).parse('<b>text</b>');

参数

  • html (String) - 要进行 sax 解析的 HTML 字符串。

  • args (Object) - 可选的参数对象,将传递给所有过滤器函数。

返回值

  • Node - 包含树的根节点。


removeAttributeFilter()

removeAttributeFilter(name: String, callback: Function)

从解析器中移除一个属性过滤器函数,或者移除解析器中所有指定属性名称的过滤器函数。

示例

// 移除单个过滤器
parser.removeAttributeFilter('src,href', someCallback);

// 移除所有过滤器
parser.removeAttributeFilter('src,href');

参数

  • name (String) - 要移除过滤器的属性名称的逗号分隔列表。

  • callback (Function) - 可选的回调函数,仅移除特定的回调函数。


removeNodeFilter()

removeNodeFilter(name: String, callback: Function)

从解析器中移除一个节点过滤器函数,或者移除解析器中所有指定节点名称的过滤器函数。

示例

// 移除单个过滤器
parser.removeNodeFilter('p,h1', someCallback);

// 移除所有过滤器
parser.removeNodeFilter('p,h1');

参数

  • name (String) - 要移除过滤器的节点名称的逗号分隔列表。

  • callback (Function) - 可选的回调函数,仅移除特定的回调函数。