2012-04-05 14 views
2
spezielle HTML-Zeichen auf das Hinzufügen

So auf einem Mikro lib ich arbeite, html.js, und im Grunde schafft es Textknoten mit document.createTextNode aber wenn ich einen Textknoten mit a b erstellen möchten bekomme ich a b also bin ich frage mich, wie man die & char entkommen, ohne innerHTML ideal zu verwenden.Wie ohne innerHTML-

+5

Sollte das nicht "&" sein? –

+0

'&' = '&' in HTML –

+0

möglich Duplikat von [Ist es möglich, die createTextNode-Methode zum Rendern von HTML-Tags zu bekommen?] (Http://stackoverflow.com/questions/6965498/is-it-possible-to -get-the-createtextnode-Methode-to-render-html-tags) –

Antwort

0

Es gibt nicht viel Funktionalität in Js zu encodieren/decodieren HTML-Entities. Es scheint, als ob dort einige Bibliotheken da draußen sind, die dir dabei helfen können. Hier ist eine, die ich auf goodle gefunden habe .. habe es nicht ausprobiert, aber du kannst es ausprobieren oder nach anderen suchen.

http://www.strictly-software.com/htmlencode

+0

Ich hoffe, Sie können eine bessere Antwort finden, als eine Bibliothek dafür zu verwenden. Ich wäre interessiert;) –

4

Javascript unterstützt die \uXXXX Notation, also im Falle eines Nicht-breaking space, dass \u00A0 wäre.

document.createTextNode('a\u00A0b');

, die so weit ist, wie Sie bekommen können. Es ist ein Textknoten, der nur aus Text besteht, und es gibt keinen Unterschied zwischen Texten, die aus Entitätsreferenzen oder aus normalen Zeichen erstellt wurden.

Wenn Sie das nicht möchten, sollten Sie sich innerHtml noch einmal ansehen. Kannst du es nicht lesen, modifizieren und zurücklegen?

+1

Beat mich dazu. Hier ist ein Beispiel: http://jsfiddle.net/AXdpJ/ –

+0

html.js fügt Listener zu HTML-Elementen über addEventListener hinzu und gibt einen Verweis auf das HTMLElement zurück, sodass ich den Knoten nicht mit innerHTML überschreiben oder löschen kann. – erikvold

+0

Das sieht nach einer guten Möglichkeit für Benutzer aus, die Verwendung von HTML-Entities zu vermeiden, aber ich würde gerne eine Lösung für sie haben, wenn sie sie benutzen. – erikvold