2009-05-20 2 views
0

In unserem Team kamen wir auf die Idee, dass wir die Strings sanieren müssen, bevor sie dem DOM hinzugefügt werden. Wir erwarteten mindestens, dass doppelte Anführungszeichen problematisch wären, wenn sie in setAttribute und <und> verwendet würden, wenn sie zum Knoteninhalt hinzugefügt würden.Muss ich vor dem Hinzufügen zu DOM eine String-Hygiene durchführen?

Die ersten Tests zeigten etwas anderes. Wir verwenden innerHTML, um einen Knoten-Inhalt festzulegen. Dies entzieht sich allen unsicheren Zeichen. Aber selbst setAttribute entweicht <und>

So ist das immer der Fall, weil ich nichts bei Google finden konnte? Ich weiß nicht, ob da draußen Browser sind, die scheitern würden.

Antwort

2

innerHTML bearbeitet den HTML-Code innerhalb eines Elements und generiert DOM-Knoten daraus - Sie müssen HTML gemäß den normalen Regeln schreiben (z. B. können Sie kein <-Zeichen verwenden, wenn nicht ein Zeichen ohne Namen folgt). Browser werden jedoch ihre übliche Fehlerkorrektur durchführen.

Ich verstehe nicht, warum Ihre Erfahrung von innerHTML davon unterscheidet.

createTextNode, setAttribute, usw. bearbeiten Sie das DOM direkt. HTML ist nicht involviert, sodass Sie sich nicht mit Zeichen beschäftigen müssen, die eine besondere Bedeutung in HTML haben.

+0

Ich warf einen zweiten Blick und wir verwenden nicht innerHTML. Da wir einzelne Knoten haben, können wir den nodeValue setzen. Und dann denke ich, Ihre Antwort icludes dies, dass jede DOM-Methode funktioniert weg, dass < and > sind genau richtig behandelt. –

Verwandte Themen