go 语言中如何让 html/template 不转义 html 标签
目录
当字符串变量存在 html 标签代码时,使用 template 进行渲染成网页模版时,默认会对 html 标签进行转义,也就是 html 标签代码渲染后不会生效,就是单纯的字符串,但是某些场景下,确实是希望返回的 html 标签能够正常的被浏览器渲染成页面
实现:
方式一:
在后台将字符串类型数据转换成template.HTML
类型再传入 html 模板进行渲染:
bodyHtml:=template.HTML(bodyStr)
方式二:
自定义一个函数-在模板解析的时候将字符串类型数据转换成template.HTML
类型
func TPFunHtmlUnescaped(x string) interface{} {
return template.HTML(x)
}
本质上两种方法是一样的,都是调用template.html(x);x为字符串类型的变量,除了template.HTML
类型,text/template
还定义了template.JS
、template.CSS
等数据类型;可自行尝试