Ook*_*Ook 2 html javascript string google-app-engine go
我的应用程序是用 Go 编写的。应用程序的页面从 HTML 文本区域接收用户数据,该数据作为字符串数据保存到 Google App Engine 数据存储中。然后,在应用程序的另一个页面上,它需要以用户在 HTML 文本区域中键入的格式显示数据,或者至少在用户在 HTML 文本字段中键入数据时按 Enter 键时保留换行符。
我尝试使用<pre>标签来显示用户在文本字段中输入的保留换行符,效果很好。然而我发现有一个双标签
\t\t
使用标签时插入到字符串的开头<pre>,我可以使用 Javascript 删除双标签。
我保留用户在文本字段中输入的换行符的想法是使用 javascript 替换函数来替换所有\r\n,\n和\r到<br>,但是,它没有成功。Go 似乎没有将换行符输出到 html 源代码中。出于安全原因,我使用“html/template”,但我没想到它会\r\n完全从输出中删除字符。\t\t对于字符串开头的奇怪的双制表符有什么建议吗?
不要在 javascript 中更改换行符<br>,而是在 Go 中进行: http: //play.golang.org/p/jJXMZxtYcv
package main
import (
"html/template"
"log"
"os"
"strings"
)
func main() {
const tpl = `
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{.Title}}</title>
</head>
<body>
<div>{{nl2br .Text}}</div>
</body>
</html>`
check := func(err error) {
if err != nil {
log.Fatal(err)
}
}
funcs := template.FuncMap{
"nl2br": func(text string) template.HTML {
return template.HTML(strings.Replace(template.HTMLEscapeString(text), "\n", "<br>", -1))
},
}
t, err := template.New("webpage").Funcs(funcs).Parse(tpl)
check(err)
data := struct {
Title string
Text string
}{
Title: "My page",
Text: "\t\tLine 1\r\nLine2\r\n",
}
err = t.Execute(os.Stdout, data)
check(err)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2668 次 |
| 最近记录: |