Skip to content

ExtToken

bhsd edited this page Dec 18, 2023 · 22 revisions

Other Languages

简介

扩展标签。这个类同时混合了 AttributesToken 类的属性和方法。

✅ 在 MiniBrowser 版本中可用。

Properties

name

✅ 展开

type: string
标签名,只读。

// name
var {firstChild} = Parser.parse('<pre>a</pre>');
assert.equal(firstChild, '<pre>a</pre>');
assert.strictEqual(firstChild.name, 'pre');

selfClosing

展开

type: boolean
是否自封闭。

// selfClosing
var {firstChild} = Parser.parse('<ref/>');
assert.equal(firstChild, '<ref/>');
assert(firstChild.selfClosing);
firstChild.selfClosing = false;
assert.equal(firstChild, '<ref></ref>');

innerText

展开

type: string
内部 wikitext,只读。

// innerText
var {firstChild} = Parser.parse('<pre>a</pre>');
assert.equal(firstChild, '<pre>a</pre>');
assert.strictEqual(firstChild.innerText, 'a');

Methods

lint

✅ 展开

returns LintError[]
报告潜在语法错误。

// lint
var root = Parser.parse('<b title="a<ref>aa</ref>">aaa</b>'),
	ref = root.querySelector('ext#ref');
assert.equal(ref, '<ref>aa</ref>');
assert.deepStrictEqual(ref.lint(), [
	{
		severity: 'error',
		message: 'extension tag in HTML tag attributes',
		startLine: 0,
		startCol: 11,
		startIndex: 11,
		endLine: 0,
		endCol: 24,
		endIndex: 24,
		excerpt: '<b title="a<ref>aa</ref>">aaa</b>',
	},
]);

cloneNode

展开

returns: this
深拷贝节点。

// cloneNode
var {firstChild, lastChild} = Parser.parse('<ref name="a">a</ref><ref name="a"/>'),
	closed = firstChild.cloneNode(),
	selfClosing = lastChild.cloneNode();
assert.equal(firstChild, '<ref name="a">a</ref>');
assert.equal(closed, '<ref name="a">a</ref>');
assert.equal(lastChild, '<ref name="a"/>');
assert.equal(selfClosing, '<ref name="a"/>');
assert.deepStrictEqual(closed, firstChild);
assert.deepStrictEqual(selfClosing, lastChild);
Clone this wiki locally