有没有办法在 Golang html 模板 ( ) 中将 Javascript 作为变量注入html/template。我期待脚本被注入到模板中,但是脚本被作为字符串注入到".模板.html...<head> {{ .myScript }}</head>...解析器.go ... fp := path.Join("dir", "shop_template.html") tmpl, err := template.ParseFiles(fp) if err != nil { return err } return tmpl.Execute(writer, myObject{Script: "<script>console.log('Hello World!');</script>"}) ...呈现的 html 输出:...<head> "<script>console.log('Hello World!');</script>"</head>...预期产出<head> <script>console.log('Hello World!');</script> // And should log Hello World! in the console.</head>
1 回答
萧十郎
TA贡献1815条经验 获得超13个赞
假设您使用的是 html/template 包,这是预期的行为。常规字符串不应该能够注入 HTML/JS 代码。
如果您信任内容,您可以使用template.JS或template.HTML类型注入 JS 和 HTML 代码。
return tmpl.Execute(writer, myObject{
Script: template.HTML("<script>console.log('Hello World!');</script>")})
当然,你需要声明:
type myObject struct {
Script template.HTML
...
}
而不是string.
- 1 回答
- 0 关注
- 255 浏览
添加回答
举报
0/150
提交
取消