每个回调函数都会收到一个对象,表示选择的HTML标签或相关部分,该对象称为回调参数。本文为您介绍Element、TextChunk和Comments等回调参数。

说明
  • 所有的回调参数必须在回调函数中调用才有效,在回调函数以外的地方调用回调参数对象的属性或方法会导致JS异常。您可以将需要的部分保存到其他JS对象或数据结构中。
  • 本文中出现的所有option都表示一个对象,对象中的属性html可以被设置为true或false,用于表示该内容是否被解释为HTML内容或纯文字内容。如果将html设置为false,HTMLStream会对其做html encoding/esacping

Element

  • 定义

    该对象会在Element回调函数被调用时提供给您,表示某个被选择的HTML标签。

  • 属性
    • tagName(string):标签名字。
    • attributes(iterator):返回一个迭代器,该迭代器返回所有的属性[name, value]
    • removed(bool):只读,表示该元素是否被删除。删除一个元素使用remove,多数情况下需要根据这个标签跳过该元素,因为元素已经被删除。
    • namespaceURI:只读,表示该元素的命名空间URI,例如svg或script元素。
  • 方法
    • 修改属性
      • getAttribute(name):查询某个元素的属性名称。
      • setAttribute(name, value):设置和修改某个元素的属性名称。
      • hasAttribute(name):查询某个元素的属性名称是否存在。
      • removeAttribute(name):删除某个元素的属性名称。
      说明 属性名称和值要求必须是string类型。
    • 修改内容
      • before(data, option):将内容插入到该元素之前,即元素的标签之前。
      • after(data, option):将内容插入到该元素之后,即元素的标签之后。
      • prepend(data, option):将内容插入到该元素的内容之前,即元素的开启标签结束的后方,例如<div>(prepend) |aaaa|(append)</div>
      • append(data, option):将内容插入到该元素的内容之后,即元素的结束标签结束的前方,例如<div>(prepend) |aaaa|(append)</div>
      • replace(data, option):替换整个元素,包括标签和嵌套的标签都会被替换。
      • setInnerContent(data, option):设置元素内容,标签和属性不变。
      • remove():删除该元素,removed属性为true。
      • removeAndKeepContent():删除元素的标签和属性,保留内容。

TextChunk

  • 定义

    该对象会在text回调函数被调用时提供给您,代表某个被选择的HTML的Text部分。

  • 属性
    • removed(bool):只读,表示该元素是否被删除。删除一个元素使用remove,多数情况下需要根据这个标签跳过该元素,因为元素已经被删除。
    • text(string):只读,表示该text的内容。该text有可能只是一部分text,如果此字符串为空,代表这是最后一个chunk,您可以趁机把所有的text拼接起来。
    • lastInTextNode(bool):只读,表示是否为最后一个text。如果为true,text属性返回空字符串。
  • 方法
    修改内容的方法如下:
    • before(data, option):将内容插入到该元素之前,即元素的标签之前。
    • after(data, option):将内容插入到该元素之后,即元素的标签之后。
    • replace(data, option):替换整个元素,包括标签和嵌套的标签都会被替换。
    • remove():删除该元素,removed属性为true。

Comments

  • 定义

    该对象会在comments回调函数被调用时提供给您,代表某个被选择的HTML的注释部分。

  • 属性
    • removed(bool):只读,表示该元素是否被删除。删除一个元素使用remove,多数情况下需要根据这个标签跳过该元素,因为元素已经被删除。
    • text(string):可读可写,表示注释的内容或改变注释内容。
  • 方法
    修改内容的方法如下:
    • before(data, option):将内容插入到该元素之前,即元素的标签之前。
    • after(data, option):将内容插入到该元素之后,即元素的标签之后。
    • replace(data, option):替换整个元素,包括标签和嵌套的标签都会被替换。
    • remove():删除该元素,removed属性为true。

Doctype

  • 定义

    该对象会在doctype回调函数被调用时提供给您,代表某个被选择的HTML的Doctype部分。

  • 属性
    • name(string):只读,表示doctype名字。
    • publicId(string):只读,如果有表示public identifier,否则返回null。
    • systemId(string):只读,如果有表示system identifier,否则返回null。

Docend

  • 定义

    该对象会在docend回调函数被调用时提供给您,代表整个HTML的末尾部分。

  • 方法

    append(string, option) :用于向HTML流末尾加入若干内容。