PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript Wörter im body Bereich ersetzen.


Gast
2009-03-31, 22:46:39
Hallo, ich bin gerade dabei eine News Seite in HTML zu gestalten. (intern für meine Schule) Das ist eine Art Schülerzeitung. In diesem News Bereich gibt es sehr viel Text der von Tag zu Tag wechselt. Nun möchte ich bestimmte Wörter immer durch einen Link ersetzen. (Mit Hilfe von Javascript)
Beispielsweise soll
"Wasser" egal wo es im <body> vorkommt immer durch.
"<a href="http://de.wikipedia.org/wiki/Wasser">Wasser</a>" ersetzt werden.

Hier -- http://de.selfhtml.org/javascript/objekte/string.htm#replace -- funktioniert das ganze innerhalb eines Scripts bereits.

Was muss ich tun damit das ersetzen im ganzem Body funktioniert?
Kenne mich mit JS leider nicht so gut aus...
Danke

Marscel
2009-03-31, 23:03:48
Kannst ja rekursiv alle Child-Elemente im Body durchgehen und im Falle von Text replace() anwenden.

DanMan
2009-03-31, 23:25:35
Ohne die Wörter irgendwie vorher zu markieren wird es erstens kompliziert und was noch schlimmer ist: langsam.

Vom Prinzip her: Du müsstest alle Text Nodes auf die versch. Zeichenfolgen überprüfen, und dann Links draus machen.

Das brauchst du u.a.: https://developer.mozilla.org/En/DOM/Node.nodeType

Gast
2009-04-01, 03:14:08
Bin ein blutiger Anfänger was so etwas betrifft.

@Marscel: Ich habe erst mal bei Wikipedia geguckt was "rekursiv" heißt. Wieder was gelernt. Das Wort werde ich im Zusammenhang mit solchen Sachen anscheinend noch öfter gebrauchen müssen.
"Kannst ja rekursiv alle Child-Elemente im Body durchgehen und im Falle von Text replace() anwenden. " Also muss ich jedes Element einzeln durchsuchen lassen und das ins Script implementieren wie zum Beispiel divs, spans, etc?

@DanMan: "Ohne die Wörter irgendwie vorher zu markieren wird es erstens kompliziert und was noch schlimmer ist: langsam." Mit markieren meinst du in Elemente wie Divs verpacken? Was genau meinst du mit langsam? Mit Text Nodes meinst du den Text im Quelltext an sich?

Wie ihr seht Fragen über Fragen, denn ich hatte bisher mit Javascript nichts am Hut. Ich versuche aber zu lernen (;

DanMan
2009-04-01, 20:28:00
Bin ein blutiger Anfänger was so etwas betrifft.

@DanMan: "Ohne die Wörter irgendwie vorher zu markieren wird es erstens kompliziert und was noch schlimmer ist: langsam." Mit markieren meinst du in Elemente wie Divs verpacken? Was genau meinst du mit langsam? Mit Text Nodes meinst du den Text im Quelltext an sich?
Mit markieren meine ich, die Begriffe in Tags wie <span class="begriff"> zu verpacken, ja. Keine <div>, denn das sind Block-Elemente, während <span> Inline-Elemente sind - also im Textfluss.

Mit langsam meine ich, dass du sonst "alle Child-Elemente im Body rekursiv durchgehen" musst. :)

Mit TextNode meine ich reinen Text, ja.