Go テンプレート関数が HTML を出力すると、予期せぬ "ZgotmplZ" が発生する可能性があります。この固有の値は、実行時に CSS または URL コンテキスト内に安全でないコンテンツが存在することを示します。
「ZgotmplZ」は、生の潜在的に危険なデータが CSS または URL に誤って入力されたことを示しますコンテクスト。これを解決するには、safe 関数と attr 関数をテンプレートの funcMap に追加する必要があります。これらの関数は、それぞれデータを安全な HTML と HTML 属性に変換します。
package main import ( "html/template" "os" ) func main() { funcMap := template.FuncMap{ "attr": func(s string) template.HTMLAttr { return template.HTMLAttr(s) }, "safe": func(s string) template.HTML { return template.HTML(s) }, } template.Must(template.New("Template").Funcs(funcMap).Parse(` <option {{.attr | attr}}>>test</option> {{.html | safe}} `)).Execute(os.Stdout, map[string]string{ "attr": `selected="selected"`, "html": `<option selected="selected">test</option>`, }) }
この修正されたコードは、目的の出力を生成します:
<option selected="selected">test</option> <option selected="selected">test</option>
開発者は、文字列を次のような他の HTML セーフな型に変換できる追加関数を定義することを選択できます。 template.CSS、template.JS、template.JSStr、および template.URL.
以上がGo HTML テンプレートに「ZgotmplZ」が表示されるのはなぜですか? どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。