JS-Ausgabe in XHTML
Ulli_der_andere
- javascript
0 Cheatah0 ChrisB0 Ulli_der_andere0 ChrisB
0 Ulli_der_andere
Hallo
ich denke, dass ich ein bischen JS Programmieren kann. Aber ich kriege keine Ausgabe (abgesehen von alert) in XHTML zustande. Hier der zu 100Proz. abgekupferte XHTML Beispielcode auf SelfHTML mit etwas JS-Code:
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Beschreibung der Seite</title>
</head>
<body>
<p>
<script type="text/javascript">
document.write("Hallo Welt");
</script>
</p>
</body>
</html>
Der Code erzeugt auf der JS-Console die Fehlermeldung "Object cannot be created in this context". Ich erstelle doch keine Object sondern gebe nur Fliesstext aus ...
Bin sehr dankbar für Hilfe, Ulli
Hi,
<?xml version="1.0" ?>
[...]
document.write("Hallo Welt");
document.write() steht in XML nicht zur Verfügung. Nutze DOM-Operationen.
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
Hi,
Der Code erzeugt auf der JS-Console die Fehlermeldung "Object cannot be created in this context". Ich erstelle doch keine Object sondern gebe nur Fliesstext aus ...
Wenn du das tatsächlich vom Browser als XML *verarbeiten* lässt, ist das kein Wunder - document.write ist in echtem XHTML nämlich nicht erlaubt.
Ein Dokument kann nicht geparst und auf Wohlgeformtheit überprüft werden, wenn es während dieses Vorgangs dynamisch geändert wird.
document.write kannst du nur „Tag Soup“-Parsern vorsetzen, die text/html verarbeiten.
MfG ChrisB
Danke für die Tips,
nun, was ich verstanden habe ist, dass "document.write" in XHTML nicht erlaubt ist. Die Fehlermeldung deutet das ja schon an. Offensichtlich kann man aber der Inhalt von Tags über DOM änderen ...
Nur wie? Sicher ist wohl, das es vernüfgig ist, dem zu ändernden Tag eine ID mitzugegeben. Aber ich finde nichts darüber, wie der Javacode aussehen muss.
Nochmal Danke!!!
Hi,
Offensichtlich kann man aber der Inhalt von Tags über DOM änderen ...
Nein - aber den von Elementen.
Nur wie? Sicher ist wohl, das es vernüfgig ist, dem zu ändernden Tag eine ID mitzugegeben.
Nein, nicht unbedingt. Andere Zugriffswege können sich je nach Struktur ggf. eher anbieten.
Aber ich finde nichts darüber, wie der Javacode aussehen muss.
Bitte erst mal zur Kenntnis nehmen, dass Java etwas vollkommen anderes ist als JavaScript.
DOM: http://de.wikipedia.org/wiki/Document_Object_Model
Beim Umgang damit in JavaScript sind vor allem die Methoden von document und die einzelner Knoten-Objekte interessant.
MfG ChrisB
Hallo,
sieht der Beispielcode denn nun korrekt aus? Bzw. kann man so einen
Code als Basis zum weiterarbeiten nehmen oder sind da noch Patzer drin?
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
</head>
<body>
<p id="dyn_Abs">
</p>
<script type="text/javascript">
/* <![CDATA[ */
var my_text = "Hallo Welt";
document.getElementById("dyn_Abs").firstChild.replaceData(0, my_text.length, my_text);
/* ]]> */
</script>
</body>
</html>
Und noch eine Frage im Anschluss: kann man anstatt document.write("<tag>xyz</tag>" mit den DOM Funktionen von JS Elemente hinzufügen und löschen um Dynamisch zu bleiben oder ist das Unsinn?
Danke!!!
PS: sollte ich nun ein Buch schreiben?
Hi,
document.getElementById("dyn_Abs").firstChild.replaceData(0, my_text.length, my_text);
Statt die Methode replaceData zu benutzen, kannst du auch direkt den Inhalt der data-Eigenschaft eines Textknotens überschreiben, wenn du den Inhalt komplett austauschen willst.
Und noch eine Frage im Anschluss: kann man anstatt document.write("<tag>xyz</tag>" mit den DOM Funktionen von JS Elemente hinzufügen und löschen um Dynamisch zu bleiben
Ja, kann man.
Noch mal: Schau dir die Methoden von document an.
PS: sollte ich nun ein Buch schreiben?
Vielleicht erst mal eins Lesen, zumindest wenn es um JavaScript geht.
MfG ChrisB
PS: sollte ich nun ein Buch schreiben?
Vielleicht erst mal eins Lesen, zumindest wenn es um JavaScript geht.
Normalerweise hast du Recht - aber im Gegensatz zu Menschen die anstänig sehen können schreibe ich schneller als ich lese - oder kennst du ein Hörbuch über XHTML? Bleibt natürlich trotzdem das Problem, dass man vernünftigerweise etwas wissen sollte bevor man ein Buch schreibt (aber andere umgehen das Problem ja auch einfach durch Dreistigkeit und gewinnen offensichtlich). So long!