我有一个html模板,我想从模板本身之外插入一些JavaScript代码。在我的模板数据结构中,我创建了一个字符串字段JS string
,并使用{{.JS}}
调用它。问题是浏览器中的所有内容都被转义:
换行符为\n
<
和>
为\u003c
和\u003e
"
是\"
模板内的相同符号很好。如果我将JS
字段打印到控制台,它也没关系。我已经看到使用template.HTML
类型而不是string
解决了一些类似的问题。就我而言,根本不起作用。
编辑1
实际情况是
<script language="JavaScript">
var options = {
{{.JS}}
};
</script>
答案 0 :(得分:8)
将字段的类型更改为template.JS,如下所示:
type Tmpl struct {
// ...
JS template.JS
}
或者声明一个简单的函数,将string
转换为template.JS
类型,如下所示:
func toJS(s string) template.JS {
return template.JS(s)
}
然后使用Funcs方法注册该函数,并在模板中使用它,如下所示:
{{toJS .JS}}
答案 1 :(得分:3)