HTML.-Ausgabe
flo1810
- javascript
0 Cheatah0 dem Script
Ich habe folgendes Problem:
Meine JavaFunc sieht so aus:
function testit(results)
{
var myH1 = document.createElement("p");
var myText = document.createTextNode(results);
myH1.appendChild(myText);
var Ausgabebereich = document.getElementById("Bereich");
Ausgabebereich.appendChild(myH1);
Ausgabebereich.insertBefore(myH1, Ausgabebereich.firstChild);
}
Der westenliche HTML Teil
<div id="Bereich" style="border:1px black solid; padding:10px">
Bei jedem Aufruf der function testit(results) wird alles was in "results" steht jeweils als erstes angehängt.
Dies tut auch alles wie es soll.
Jedoch, wenn der String Results HTML Code enthält, wird dieser als Text ausgegeben und nicht vom Browser intepretiert.
Results soll zB.:"<table><tr><td>Hallo</td></tr></table>" entahlten.
Es soll dann im div diese Table erzeugt werden und nicht der HTML Quelltext angezeigt werden.
Wie kann ich das machen?!
Hi,
Meine JavaFunc sieht so aus:
Du hast keinerlei Java-Code. Es handelt sich um JavaScript.
var myH1 = document.createElement("p");
Wo hast Du die Prüfung auf DOM-Kenntnis untergebracht?
Jedoch, wenn der String Results HTML Code enthält, wird dieser als Text ausgegeben und nicht vom Browser intepretiert.
Natürlich, es handelt sich schließlich um eine Text-Node.
Es soll dann im div diese Table erzeugt werden und nicht der HTML Quelltext angezeigt werden.
Wie kann ich das machen?!
*Falls*(!) der Browser innerHTML beherrscht, kannst Du dies verwenden. Es handelt sich dabei *nicht* um einen Teil von DOM, ist also alles andere als obligatorisch, *selbst wenn* der Browser DOM beherrscht. Bei Kenntnis von DOM, nicht aber innerHTML, musst Du den Text selbst analysieren und durch entsprechende Dir bekannte create- und append-Methoden ersetzen.
Cheatah
var myH1 = document.createElement("p");
var myText = document.createTextNode(results);
myH1.appendChild(myText);
Jedoch, wenn der String Results HTML Code enthält, wird dieser als Text ausgegeben und nicht vom Browser intepretiert.
Results soll zB.:"<table><tr><td>Hallo</td></tr></table>" entahlten.
Es soll dann im div diese Table erzeugt werden und nicht der HTML Quelltext angezeigt werden.
Wahrscheinlich nur, indem der HTML-Code in results von Hand eingelesen (RegEx.match könnte helfen) und mit createElement umgesetzt wird. Muss es denn unbedingt so universell sein?
createTextNode erzeugt, wie der Name schon sagt, einen Textknoten, keinen Elementbaum.