Wenn dieser Code ausgeführt wird, wird die refer_summary Variable enthält tatsächlich eine Zeichenfolge, die HTML-Tags wie enthalten kann <b>, <i> usw., jedoch werden diese Tags auf der Seite angezeigt, anstatt ihr Verhalten wiederzugeben.
Zum Beispiel auf der Seite, die es zeigen würde <b> vielmehr den Inhalt fett zu machen.
Wie kann ich die HTML-Tags rendern, wenn der Wert angehängt wird?
In meiner Django-Vorlage verwende ich {% autoescape off %}{{content}}{% endautoescape %} Wenn ich also die Seite zum ersten Mal lade, wird der Inhalt korrekt mit Fettdruck usw. gerendert. Aber wie kann ich dasselbe tun, wenn ich den HTML-Code von Javascript anfüge?
Danke für die Hilfe!
Klingt nach einem XSS-Angriff, der darauf wartet, passiert zu werden.
Um jedoch einen vorhandenen HTML-String anzuhängen, müssen Sie die ID des Knotens/Tags abrufen, unter dem Sie Ihren HTML-String einfügen möchten.
Es gibt zwei Möglichkeiten, wie Sie dies möglicherweise erreichen können:
Verwenden von DOM –
var tag_id = document.getElementById('tagid');
var newNode = document.createElement('p');
newNode.appendChild(document.createTextNode('html string'));
Verwenden von innerHTML –
var tag_id = document.getElementById('tagid');
tag_id.innerHTML = 'HTML string';
Der Vorteil von 2 ist, dass kein neues Element/Dom wie bei write und 1 entsteht. Scheint eine reine Lösung zu sein.
–Timo
31. März 2021 um 18:19 Uhr
Es sollte zur Verdeutlichung hinzugefügt werden, dass in 1 und 2 jedes HTML-Markup enthalten ist, das in der 'html string' wird es tatsächlich sein geparst und in DOM konvertiert Knoten. Also das ist eine Möglichkeit zum Erweitern des DOM, nicht nur zum Einfügen von Textzeichenfolgen.
– Marcin Wojnarski
11. August 2021 um 22:57 Uhr
Verwenden Sie $.parseHTML vor dem Anhängen von HTML wie as
Klingt nach einem XSS-Angriff, der darauf wartet, passiert zu werden.
– Robby Cornelissen
25. Januar 2017 um 4:59 Uhr