DomParser parseFromString удаление узлов - PullRequest
2 голосов
/ 13 марта 2019

Я столкнулся со странным поведением при использовании DomParser.Похоже, что если первый элемент представляет собой ШАБЛОН, он игнорируется.

См. Вывод ниже:

printTags('<template></template><h1></h1>', 'text/html');
document.write('<hr>')
printTags('<h1></h1><template></template>', 'text/html');

function printTags(str)
{
	let doc = new DOMParser().parseFromString(str, 'text/html');
	document.write(Array.from(doc.body.children).map(child => child.tagName).join(','));
}

Браузер: Chrome 72

Это обычное поведение?Если да, где я могу найти документацию?

1 Ответ

1 голос
/ 13 марта 2019

DOMParser() парсинг исходного кода HTML из строки в DOM.Не уверен, что содержимое строки анализируется как body, поэтому попробуйте обернуть его тегом <body>.

printTags('<body><template></template><h1></h1></body>', 'text/html');
document.write('<hr>')
printTags('<body><h1></h1><template></template></body>', 'text/html');

function printTags(str) {
  let doc = new DOMParser().parseFromString(str, 'text/html');
  document.write(Array.from(doc.body.children).map(child => child.tagName).join(','));
}
...