Quelltext mit replace überprüfen
Christian Bothe
- javascript
0 ChrisB0 Micha
Hallo!
Ich versuche gerade ein Java-Script zu schreiben, welches im gesamten Quelltext Hans durch Dieter ersetzt. Mit einer Variable funktioniert es tadellos.
Wie schaffe ich das im gesamten Quelltext bzw. dem Text der im <body> steht? Danke für eure Hilfe.
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
var y = 'Hans und Anna sitzen im Haus. Hans raucht.';
y = y.replace(/Hans/g, "Dieter");
document.write(y);
document.close();
void(0);
</script>
</head>
<html>
.................
</body>
</html>
Hi,
Ich versuche gerade ein Java-Script zu schreiben, welches im gesamten Quelltext Hans durch Dieter ersetzt. Mit einer Variable funktioniert es tadellos.
y = y.replace(/Hans/g, "Dieter");
Um statt Hans den Inhalt einer Variablen dorthin zu bekommen, erzeuge dir zunaechst ein neues RegExp-Objekt.
Fuer ein Beispiel siehe http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:RegExp
MfG ChrisB
Danke für deinen Tipp.
Die replace-Funktion funktioniert einwandfrei. In meinem Script benutze ich reguläre Ausdrücke. Ich habe Dieter und Hans nur als Beispiel genommen.
Ich frage mich nur, wie ich die Ausdrücke im ganzen Text (body) prüfen kann.
Hallo Christian Bothe,
Wie schaffe ich das im gesamten Quelltext bzw. dem Text der im <body> steht?
Du könntest mit innerHTML auf den Inhalt des Dokumentenbodys zugreifen.
var oldStr = document.body.innerHTML; // der Inhalt
var newStr = oldStr.replace(/foo/gi, "bar"); // Ersetze
document.body.innerHTML = newStr; // neuen Inhalt zuweisen
Das ganze funktioniert jedoch nur dann sinnvoll, wenn nicht (ausversehen) auch HTML-Tag oder Attribute überschrieben werden.
Mit freundlichem Gruß
Micha
Vielen Dank für den Tipp. So ungefähr habe ich mir das vorgestellt.
var oldStr = document.body.innerHTML; // der Inhalt
var newStr = oldStr.replace(/foo/gi, "bar"); // Ersetze
document.body.innerHTML = newStr; // neuen Inhalt zuweisen
Ich habe deine Zeilen mal ausprobiert.
Bekomme das nicht zum laufen.
Der meldet immer das ein Objekt in der ersten Zeile erforderlich ist.
Hi,
var oldStr = document.body.innerHTML; // der Inhalt
Der meldet immer das ein Objekt in der ersten Zeile erforderlich ist.
Diesen Code darfst du natuerlich nicht ausfuehren, bevor es ueberhaupt einen Body gibt.
MfG ChrisB
Hallo Christian Bothe,
Der meldet immer das ein Objekt in der ersten Zeile erforderlich ist.
wie ChrisB schon schrieb, darfst/kannst Du erst auf ein Element zu greifen, wenn dieses existiert. Mit dem Event onload könntest Du es lösen:
window.onload = function(e) {
// hier die Anweisungen
};
Mit freundlichem Gruß
Micha