首页 > 后端开发 > Golang > 如何防止 GoLang 模板中的 HTML 转义?

如何防止 GoLang 模板中的 HTML 转义?

Linda Hamilton
发布: 2024-11-02 10:47:31
原创
1117 人浏览过

How to Prevent HTML Escaping in GoLang Templates?

将 HTML 插入 GoLang 模板

在 GoLang 中填充 HTML 模板时,遇到 HTML 字符被转义和错误添加的问题并不罕见。为了解决这个问题,了解作为字符串传递数据和作为 template.HTML 传递数据之间的区别至关重要。

默认情况下,当数据作为字符串传递时,GoLang 模板将转义 HTML 字符。这会导致您所描述的意外输出。为了防止这种情况,正确的方法是将 HTML 内容作为 template.HTML 传递。此数据类型专门设计用于处理 HTML 内容而无需转义。

以下是如何使用 template.HTML 的示例:

<code class="go">package main

import (
    "html/template"
    "os"
)

func main() {
    tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`))
    tplVars := map[string]interface{} {
        "Html": template.HTML("<p>Paragraph</p>"),
        "String": "<p>Paragraph</p>",
    }
    tpl.ExecuteTemplate(os.Stdout, "T", tplVars)
}</code>
登录后复制

通过将 HTML 内容作为 template.HTML 传递,输出将按预期呈现,并正确显示 HTML 字符。这种方法可确保您的 HTML 模板准确填充,而不会出现任何不需要的转义。

以上是如何防止 GoLang 模板中的 HTML 转义?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板