Heim >Backend-Entwicklung >Golang >Warum verschwinden meine HTML-Kommentare nach der Ausführung der Go-Vorlage?
In Go wird oft erwartet, dass HTML-Kommentare über die Vorlagenausführung gerendert werden, wird aber aktualisiert zur Go-Version kann zu unerwarteten Ausschlüssen von HTML-Kommentaren in der Ausgabe führen. In diesem Artikel wird das Problem untersucht und eine Lösung mithilfe des Typs template.HTML bereitgestellt.
Beim Rendern von HTML mit dem Text-/Vorlagenpaket von Go, HTML Kommentare werden normalerweise maskiert, um Cross-Site-Scripting-Angriffe (XSS) zu verhindern. In bestimmten Situationen ist es jedoch wünschenswert, diese Kommentare für eine ordnungsgemäße Funktionalität beizubehalten.
Die Lösung besteht darin, den Typ template.HTML zum Markieren zu verwenden HTML-Kommentare sind von der Escape-Funktion ausgenommen. So wird es implementiert:
Registrieren Sie eine benutzerdefinierte Funktion:
Definieren Sie eine benutzerdefinierte Funktion für Ihre Vorlage, die eine Zeichenfolge akzeptiert und als Vorlage zurückgibt .HTML. Diese Funktion verhindert das Escapezeichen der übergebenen Zeichenfolge.
HTML-Kommentare transformieren:
Ersetzen Sie alle HTML-Kommentare durch Vorlagenaktionen, die das aufrufen benutzerdefinierte Funktion, die den ursprünglichen Kommentar als Argument übergibt.
Zum Beispiel:
<code class="go">const src = `<html><body> {{safe "<!-- This is a comment -->"}} <div>Some <b>HTML</b> content</div> </body></html>`</code>
Diese Vorlagentransformation verhindert, dass der HTML-Kommentar beim Rendern weggelassen oder maskiert wird .
Das obige ist der detaillierte Inhalt vonWarum verschwinden meine HTML-Kommentare nach der Ausführung der Go-Vorlage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!