Dynamischer Austausch von Inhalten einer HTML-Seite
Anton
- javascript
0 Jürgen Berkemeier0 Struppi0 Anton
hi,
bei mir ist folgendes Problemchen aufgetaucht:
Ich möchte einen ganzen Teilbereich einer HTML-Seite (mit text, bildern, flash, etc...) durch einen anderen - der bereits in HTML in einer JavaScript-Variable vorliegt, ersetzen.
Beispiel:
<html>
<head></head>
<body>
<p>Text, text, text</p>
<p><img src=""></o>
<div id="austauschen">
<p>Text</p>
</div>
</body>
</html>
der inhalt von <div id="austauchen"> sollte jetzt durch den Inhalt der Javscript-Variable
var neuerInhalt = "<p>neuer Text</p><object>...</object><img src=...";
ersetzt werden....
gibt's da eine Möglicheit?
Schon mal Danke im Voraus für Eure Antworten.
Hallo Anton,
dazu benutzt Du am besten DOM:
http://selfhtml.teamone.de/javascript/index.htm
http://selfhtml.teamone.de/javascript/objekte/document.htm#get_element_by_id
http://selfhtml.teamone.de/javascript/objekte/document.htm#create_element
http://selfhtml.teamone.de/javascript/objekte/document.htm#create_text_node
http://selfhtml.teamone.de/javascript/objekte/node.htm#append_child
http://selfhtml.teamone.de/javascript/objekte/node.htm#append_child.
Die folgenden Zeilen machen aus einem Text einen Link:
var id="xxx";
var feld=document.getElementById(id).firstChild ;
var text=document.createTextNode(feld.nodeValue) ;
var link=document.createElement("a") ;
link.href="yyy.html" ;
link.title="Titel" ;
link.appendChild(text) ;
document.getElementById(id).replaceChild(link,feld) ;
Du musst aber prüfen, ob der Browser des Besuchers DOM kann, z. B. mit:
var kannDOM=document.getElementsByTagName('body')[0].replaceChild;
Gruß, Jürgen
Hallo Jürgen,
leider weis ich aber nicht die Inhalte des auszutauschenden HTMLs. Nach Deiner Methode müsste ich zuerste den HTML-Text parsen und dann entsprechend die Elemente einfügen. Das wird dann ziemlich komplex.
am einfachsten wäre halt ein Aufruf:
changeContent( id, inhalt );
trotzdem danke für Deinen Tipp.
Hallo Anton,
leider weis ich aber nicht die Inhalte des auszutauschenden HTMLs. Nach Deiner Methode müsste ich zuerste den HTML-Text parsen und dann entsprechend die Elemente einfügen. Das wird dann ziemlich komplex.
na, gerade das ist der leichteste Teil der Übung:
var feld=document.getElementById(id).firstChild ;
var text=document.createTextNode(feld.nodeValue) ;
^
hier wird mit "feld.nodeValue" der Inhalt des DIVs ausgelesen. Viel schwieriger ist es, das Konzept mit den "Kindern" und "Kindeskindern" zu verstehen und erfolgreich umzusetzen, aber da hat mir SELFHTML sehr geholfen (und viel Zeit und viele Versuche).
Nur Mut, Jürgen
hi,
bei mir ist folgendes Problemchen aufgetaucht:
Ich möchte einen ganzen Teilbereich einer HTML-Seite (mit text, bildern, flash, etc...) durch einen anderen - der bereits in HTML in einer JavaScript-Variable vorliegt, ersetzen.
Beispiel:<html>
<head></head>
<body>
<p>Text, text, text</p>
<p><img src=""></o>
<div id="austauschen">
<p>Text</p>
</div>
</body>
</html>
der inhalt von <div id="austauchen"> sollte jetzt durch den Inhalt der Javscript-Variablevar neuerInhalt = "<p>neuer Text</p><object>...</object><img src=...";
ersetzt werden....
gibt's da eine Möglicheit?
Schon mal Danke im Voraus für Eure Antworten.
Da hilft dir selfHTML weiter guck dir mal die Artikel unter Dynamische HTML an http://selfhtml.teamone.de/dhtml/index.htm
Struppi.
Thanx!
Nochmal danke für eure Bemühungen. Scheinbar bleibt mir nichts andere Übrig, als die einzelnen Elemente aus dem String zu separieren.