Martin Naatz: Umlaute im DOM

Beitrag lesen

Hallo zusammen!

Als ich neulich ein frei verfügbares Script zu Erzeugung eines dynamischen Navigationsmenüs für meine Zwecke anpassen wollte bin ich auf das schon bekannte Problem der Umlaute gestossen.
(Nämlich, dass Befehle wie
  document.createTextNode('Qualitätssicherung')
nicht den gewünschten Effekt haben)
Das Problem war zwar nicht so ernst, weil die DOM Browser für die ich schreibe die Eigenschaft innerHTML kennen (z.B. Netscape 6)
Es hatte mich aber doch geärgert und ich dachte: Ach hätte ich doch nur eine Funktion die die Umlautsequenzen decodieren kann! Am besten als Methode von String. Dann fiel der Groschen:

String.prototype.htmlDecode = function () {
    mydiv = document.createElement("div");
    mydiv.innerHTML = this;
    return mydiv.lastChild.nodeValue;
}

Das reichte als Patch aus, um zum Beispiel folgenden Ausdruck möglich zu machen:
alert('Daß es nur so pätscht!'.htmlDecode())

Lustig: das erzeugte div-Objekt muss nirgends angehängt werden!
Schade: das geht nur wenn es innerHTML gibt!
Vorsicht: ich habs nur auf Mozilla 1.0 RC2 und Explorer 5.1 und überhaupt nur auf Macintosh getestet.
Aber witzig ist es schon oder?