Die Daten in den HTML String einzubauen ist jedenfalls mühsamer und fehlerträchtiger. Es geht, natürlich geht es, aber du musst es selbst tun. Der Trick dazu ist ein Dummy-Element, das man nicht ins DOM hängt. Man weist den Text an die textContent-Eigenschaft zu und liest ihn aus innerHTML wieder aus. Zack, fertig maskiert. Aber nicht der beste Weg.
Wäre das so eine saubere Lösung deiner Meinung nach?:
function htmlEncode(str) {
const div = document.createElement('div'); // oder irgendein anderes Element
div.textContent = str;
return div.innerHTML;
}
MudGuard scheint anderer Meinung zu sein (siehe oben), wobei mir auch diese Lösung gangbar erscheint:
Die Behandlung der Zeichen für HTML (also <>& -> <>&)muß erfolgen, wenn die Daten in die HTML-Elemente geschrieben werden.
Bin da diesbezüglich schon vor meinem ersten Post auf folgendes gestoßen (siehe Konversation oben):
function escapeHTML(str) {
return str.replace(/[&<>"']/g, function (char) {
switch (char) {
case "&":
return "&";
case "<":
return "<";
case ">":
return ">";
case '"':
return """;
case "'":
return "'";
}
});
}
Beides akzeptabel? Eine Version besser als die andere? JA WAS DENN NU? 😂
Rolf
Vielen lieben Dank für Deine Hilfe! 😃👍