Tabulator 5解析含嵌套HTML的table时td内容被转义如何解决
Tabulator 5 保留原生表格内嵌套HTML结构的解决方法
Tabulator 5 出于XSS安全防护的默认逻辑,会自动转义所有单元格内的HTML标签,因此从原生<table>加载数据时,<td>内的嵌套HTML会被转为纯文本显示。可通过以下方法解决:
全局关闭HTML转义
适用于所有列都需要保留HTML内容的场景,初始化Tabulator时添加escapeHTML: false配置即可:// 假设原生table的id为your-table const table = new Tabulator("#your-table", { escapeHTML: false, // 其他初始化配置 });针对特定列关闭HTML转义
仅需部分列保留HTML内容时,建议单独对目标列设置escapeHTML: false,降低安全风险:const table = new Tabulator("#your-table", { columns: [ // 仅需要保留HTML的列添加该配置,其余列保持默认转义逻辑 {title: "列标题", field: "列字段名", escapeHTML: false}, // 其他列配置 ], // 其他初始化配置 });
注意事项
- 关闭HTML转义后,若表格存在用户可编辑或用户提交的内容,请自行做好XSS攻击防护,过滤恶意脚本内容。
- 若使用自定义单元格格式化函数,返回的HTML字符串同样需要配合对应列/全局的
escapeHTML: false配置才能正常渲染。
内容的提问来源于stack exchange,提问作者Pierre
相关产品推荐
相关产品推荐

