用于从Javascript解释HTML(文本和其他形式)的一个更现代的选项是
DOMParserAPI中的HTML支持。这使您可以使用浏览器的本机HTML解析器将字符串转换为HTML文档。自2014年底以来,所有主要浏览器的新版本均已支持该功能。
如果我们只想解码一些文本内容,则可以将其作为唯一的内容放入文档正文中,解析文档,然后将其拉出
.body.textContent。
var enpredStr = 'hello & world';var parser = new DOMParser;var dom = parser.parseFromString( '<!doctype html><body>' + enpredStr, 'text/html');var depredString = dom.body.textContent;console.log(depredString);
我们可以在规范草案中
DOMParser看到,已解析的文档未启用Javascript,因此我们可以执行此文本转换而无需担心安全性。
该
parseFromString(str, type)方法必须运行以下步骤,具体取决于 类型 :
"text/html"用an 解析 str
HTML parser,并返回新创建的document。脚本标记必须设置为“禁用”。
注意
script元素被标记为不可执行,并且将其内容noscript解析为标记。
这超出了此问题的范围,但是请注意,如果您要获取解析的DOM节点本身(而不仅仅是它们的文本内容)并将其移至实时文档DOM,则可能会重新启用其脚本,并且可以出于安全考虑。我尚未对此进行研究,因此请谨慎行事。



