← 全部文章

技术与生活 / 一篇记录

展示一段文字,没必要把它交给 HTML 解析器

用户输入可能恰好包含尖括号,也可能包含有意构造的标记。textContent 会把输入作为文本处理,避免展示需求无意变成执行页面结构的能力。

先明确这里的区别

文本内容应按文本写入,避免被解释成可执行的 HTML。

以下示例可在现代浏览器的开发者工具中观察;涉及 DOM 的代码需要在网页环境运行。

const el = document.createElement('p'); el.textContent = '<b>demo</b>'; console.log(el.outerHTML);

怎样判断处理正确

页面应展示字面标签文本,而不是粗体元素。

使用带标签的样本观察页面与 outerHTML 的差别。若需求确实是渲染 Markdown 或富文本,应在转换后使用适合该场景的清洗策略。

为普通文本增加样式,应通过元素、class 和样式规则表达,而不是把不可信字符串拼进 HTML。这样内容与结构职责清晰,也更便于在不同展示组件之间复用。

需要留意的是,确实需要富文本时,应使用经过审查的清洗方案。

参考:JavaScript 文档。

搜索文章

输入关键词,找回一篇记录。