Antwort an „Der alte Walter“ verfassen

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 <>& -> &lt;&gt;&amp;)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 "&amp;";
            case "<":
              return "&lt;";
            case ">":
              return "&gt;";
            case '"':
              return "&quot;";
            case "'":
              return "&#39;";
          }
        });
      }

Beides akzeptabel? Eine Version besser als die andere? JA WAS DENN NU? 😂

Rolf

Vielen lieben Dank für Deine Hilfe! 😃👍

freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen