戈朗。 html/template。如何将不带引号的字符串放入 <script>?
Golang. html/template. How to put a unquoted string to <script>?
我有一个模板:
<script type="text/template" id="data-user">{{.User}}</script>
其中"User"是json编码格式为URL的字符串。像
%7Bdata%22%3A%5B%7B%7D%7D
但默认 html/template 将其放在引号内,如
"%7Bdata%22%3A%5B%7B%7D%7D"
我尝试了 html/template godoc reference 的东西
Context {{.}} After
{{.}} O'Reilly: How are <i>you</i>?
<a title='{{.}}'> O'Reilly: How are you?
<a href="/{{.}}"> O'Reilly: How are %3ci%3eyou%3c/i%3e?
<a href="?q={{.}}"> O'Reilly%3a%20How%20are%3ci%3e...%3f
<a onx='f("{{.}}")'> O\x27Reilly: How are \x3ci\x3eyou...?
<a onx='f({{.}})'> "O\x27Reilly: How are \x3ci\x3eyou...?"
<a onx='pattern = /{{.}}/;'> O\x27Reilly: How are \x3ci\x3eyou...\x3f
但是我还没有成功。
感谢您的帮助
谢谢!我找到了解决方案。有template.JS种。
我将字符串转换为 template.JS 并且它有效。
看这个例子:
t := template.Must(template.New("").Parse(`<script>{{.}}</script>` + "\n"))
t.Execute(os.Stdout, "%7Bdata%22%3A%5B%7B%7D%7D")
t.Execute(os.Stdout, template.JS("%7Bdata%22%3A%5B%7B%7D%7D"))
输出:
<script>"%7Bdata%22%3A%5B%7B%7D%7D"</script>
<script>%7Bdata%22%3A%5B%7B%7D%7D</script>
在 Go Playground 上试试这些。
我有一个模板:
<script type="text/template" id="data-user">{{.User}}</script>
其中"User"是json编码格式为URL的字符串。像
%7Bdata%22%3A%5B%7B%7D%7D
但默认 html/template 将其放在引号内,如
"%7Bdata%22%3A%5B%7B%7D%7D"
我尝试了 html/template godoc reference 的东西
Context {{.}} After
{{.}} O'Reilly: How are <i>you</i>?
<a title='{{.}}'> O'Reilly: How are you?
<a href="/{{.}}"> O'Reilly: How are %3ci%3eyou%3c/i%3e?
<a href="?q={{.}}"> O'Reilly%3a%20How%20are%3ci%3e...%3f
<a onx='f("{{.}}")'> O\x27Reilly: How are \x3ci\x3eyou...?
<a onx='f({{.}})'> "O\x27Reilly: How are \x3ci\x3eyou...?"
<a onx='pattern = /{{.}}/;'> O\x27Reilly: How are \x3ci\x3eyou...\x3f
但是我还没有成功。 感谢您的帮助
谢谢!我找到了解决方案。有template.JS种。 我将字符串转换为 template.JS 并且它有效。
看这个例子:
t := template.Must(template.New("").Parse(`<script>{{.}}</script>` + "\n"))
t.Execute(os.Stdout, "%7Bdata%22%3A%5B%7B%7D%7D")
t.Execute(os.Stdout, template.JS("%7Bdata%22%3A%5B%7B%7D%7D"))
输出:
<script>"%7Bdata%22%3A%5B%7B%7D%7D"</script>
<script>%7Bdata%22%3A%5B%7B%7D%7D</script>
在 Go Playground 上试试这些。