Tim: Ersetzen

Guten Tag!

Ich habe folgendes Problem:
Ich will mit hilfe eines JavaScripts bestimmte Zeichen durch eines (oder eigentlich mehrere erstzen)
Damit man sich das besser vorstellen kann:
In meinem HTML Dokument kommt irgendein Zeichen vor (sagen wir einmal ein . Und das JavaScript soll das ganze Dokument nach durchsuchen und jedes -Zeichen zum Beispiel durch das Wort HALLO ersetzen).
Ich hoffe jemand kann mir behilflich sein.

Mit freundlichen Grüßen
Tim

  1. Hallo Tim,

    Ich will mit hilfe eines JavaScripts bestimmte Zeichen durch eines (oder eigentlich mehrere erstzen)
    Damit man sich das besser vorstellen kann:
    In meinem HTML Dokument kommt irgendein Zeichen vor (sagen wir einmal ein . Und das JavaScript soll das ganze Dokument nach durchsuchen und jedes -Zeichen zum Beispiel durch das Wort HALLO ersetzen).

    Das geht nur unter IE4/5, und zwar so:

    document.all.tags("body")[0].innerHTML=document.all.tags("body")[0].innerHTML.replace(//g,"HALLO")

    Beachte, daß vor Deinem Beispielszeichen das " \ " nur deshalb steht, weil das " " in regulären Ausdrücken eine besondere Funktion hat.
    Näheres in Selfhtml unter PERL -> Reguläre Ausdrücke.

    Gruß,

    Oliver

    1. Das geht nur unter IE4/5, und zwar so:

      document.all.tags("body")[0].innerHTML=document.all.tags("body")[0].innerHTML.replace(//g,"HALLO")

      Beachte, daß vor Deinem Beispielszeichen das " \ " nur deshalb steht, weil das " " in regulären Ausdrücken eine besondere Funktion hat.
      Näheres in Selfhtml unter PERL -> Reguläre Ausdrücke.

      Gruß,

      Oliver

      Hallo!

      Herzlichen Dank Oliver! Ich werde es dann gleich probieren. Mit Netscape geht es aber nicht? NUn, aber wenigstens etwas! Danke nochmals!
      Falls jemand für den Netscape auch eine Lösung hat, bitte ich ihn diese zu schreiben! Danke vielmals

      TIM

      1. Hallo Tim,

        Herzlichen Dank Oliver! Ich werde es dann gleich probieren. Mit Netscape geht es aber nicht? NUn, aber wenigstens etwas! Danke nochmals!
        Falls jemand für den Netscape auch eine Lösung hat, bitte ich ihn diese zu schreiben! Danke vielmals

        Doch, es geht auch mit Netscape, wie ich gerade selbst herausgefunden habe.
        Dafür muß die gesamte ursprüngliche Seite aber zunächst in einer Javascript-Variablen vorliegen. Das heißt, Du mußt lokal mit einem entsprechenden (Perl-/AWK-)Skript die betreffende(n) Seite(n) komplett umformatieren.
        Außerdem werden Suchmaschinen nichts mehr mit der Seite anfangen können (es sei denn Du überträgst jeweils den Dateiinhalt doppelt: einmal als normales HTML und einmal in Javascript.

        Damit Du siehst, wie genau es läuft, habe ich mir mal erlaubt, die gesamte Seite mit Deiner Nachricht, auf die ich hiermit antworte, so aufzubereiten (ich hoffe ich verletze mit einem so großen Quelltext nicht die Forumsstatuten...).
        Ich will damit gleichzeitig demonstrieren, daß es kein Problem ist, eine komplette HTML-Datei mittels einer (!) Javascript-Variable zu schreiben.

        Wenn Du die Seite geladen hast (und es funktioniert nun in Netscape 4 und IE4/5), dann kannst Du auf den letzten Verweis unten klicken und die Seite wird nochmal - mit dem geänderten Inhalt - neu aufgebaut (das ist mit meiner vorherigen Lösung über das IE-all-Objekt nicht anders).

        Gruß,

        Oliver

        ------------------------------------
        <html><head><title>Test</title>
        <script language="JavaScript">
        var ganzeseite="<p><nobr><a class="an" name="top"><img src="/selfhtml/x2.gif" width=16 height=13 border=0></a><a href="/selfaktuell/index.htm"><b>SELFHTML aktuell</b></a> <a class="an" name="top"><img src="/selfhtml/x2.gif" width=16 height=13 border=0></a><a href="/selfaktuell/self_forum.html"><b>SELFHTML Forum (Vorhandene Nachrichten/neue schreiben)</b></a></nobr></p><hr noshade size=1><table cellpadding=4 cellspacing=1 width=100%><tr><td bgcolor=#EEEEEE class="doc" width=110><img src="/selfhtml/xweb.gif" width=106 height=109></td><td bgcolor=#EEEEEE class="doc" valign=bottom width=100%><h2>Tim:<br>(JAVASCRIPT) Ersetzen</h2></td></tr><tr><td bgcolor=#EEEEEE class="doc" valign=top align=center><img src="/selfhtml/x5.gif" width=30 height=20 vspace=6 border=0 alt="Diese Seite ist ein Dokument mit Informationstext"></td><td bgcolor=#FFFFFF valign=top nowrap><p><img src="/selfhtml/xgdown.gif" width=14 height=10 border=0> <a href="#a1"><b>Nachricht lesen</b></a> <br><img src="/selfhtml/xgdown.gif" width=14 height=10 border=0> <a href="#a2"><b>Antworten</b></a><br></p></td></tr><tr><td colspan=2 bgcolor=#EEEEEE class="doc"><a href="#bottom"><img src="/selfhtml/xgdown.gif" width=14 height=10 border=0></a> </td></tr></table><h2 class="Sh2"><a class="an" name="a1">Nachricht lesen</a></h2><p>Ursprüngliche Nachricht zum Thema: <img src="/selfhtml/x3.gif" width=15 height=10 border=0> <a href="45543.html"><b>(JAVASCRIPT) Ersetzen</b></a> von <b>Oliver García</b>, 08.Dezember.1999, 12:17 Uhr<br>Die folgende Nachricht zum Thema stammt von: <b>Tim</b>, <img src="/selfhtml/xgmail.gif" width=15 height=10 border=0> <a href="mailto:--@--.--"><b>--@--.--</b></a>, 08.Dezember.1999, 13:10 Uhr<br></p><hr noshade size=1 width=260 align=left><p><tt>> Das geht nur unter IE4/5, und zwar so:<br>> <br>> document.all.tags("body")[0].innerHTML=document.all.tags("body")[0].innerHTML.replace(//g,"HALLO")<br>> <br>> Beachte, daß vor Deinem Beispielszeichen das " \ " nur deshalb steht, weil das " " in regulären Ausdrücken eine besondere Funktion hat.<br>> Näheres in Selfhtml unter PERL -> Reguläre Ausdrücke.<br>> <br>> Gruß,<br>> <br>> Oliver<br><br>Hallo!<br><br>Herzlichen Dank Oliver! Ich werde es dann gleich probieren. Mit Netscape geht es aber nicht? NUn, aber wenigstens etwas! Danke nochmals!<br>Falls jemand für den Netscape auch eine Lösung hat, bitte ich ihn diese zu schreiben! Danke vielmals<br><br>TIM<br><br></tt></p><br> <table bgcolor=#EEEEEE class="doc" width=100%><tr><td><a href="#top"><img src="/selfhtml/xgoup.gif" width=14 height=10 border=0></a><a href="#bottom"><img src="/selfhtml/xgdown.gif" width=14 height=10 border=0></a> </td></tr></table><h2 class="Sh2"><a class="an" name="a2">Antworten</a></h2><ul><!--insert: 45550--></ul><!--end: 45550--><h3>Eigene Antwort schreiben</h3><p>Die Nachricht, auf die Sie antworten, ist im Feld des Nachrichtentextes noch mal komplett zitiert. Entfernen Sie bei langen Nachrichten bitte alle Passagen aus dem Zitat bis auf jene, auf die Sie selbst Bezug nehmen wollen.</p><form method=POST action="http://www.teamone.de/cgi-local/self_forum.pl"><input type=hidden name="followup" value="45520,45543,45550"><input type=hidden name="origname" value="Tim"><input type=hidden name="origemail" value="--@--.--"><input type=hidden name="origsubject" value="(JAVASCRIPT) Ersetzen"><input type=hidden name="origdate" value="08.Dezember.1999, 13:10 Uhr"><td valign=top><input type=hidden name="subject" value="(JAVASCRIPT) Ersetzen"><table bgcolor=#EEEEEE cellpadding=2 cellspacing=0 border=0><tr><td align=right nowrap valign=top><b>Ihr Name:</b></td><td valign=top><input type=text name="name" size=35 style="width:260px; font-family:Arial,Sans-serif; font-size:10pt"></td></tr><tr><td align=right nowrap valign=top><b>Ihre E-Mail-Adresse:</b></td><td valign=top><input type=text name="email" size=35 style="width:260px; font-family:Arial,Sans-serif; font-size:10pt"></td></tr><tr><td valign=top colspan=2><b>Nachrichtentext:</b><br><textarea COLS=50 ROWS=20 wrap=physical name="body" style="width:470px; height:320px; font-family:Courier New,Courier; font-size:10pt; color:#0000C0">> > Das geht nur unter IE4/5, und zwar so:\n> > \n> > document.all.tags("body")[0].innerHTML=document.all.tags("body")[0].innerHTML.replace(//g,"HALLO")\n> > \n> > Beachte, daß vor Deinem Beispielszeichen das " \ " nur deshalb steht, weil das " " in regulären Ausdrücken eine besondere Funktion hat.\n> > Näheres in Selfhtml unter PERL -> Reguläre Ausdrücke.\n> > \n> > Gruß,\n> > \n> > Oliver\n> \n> Hallo!\n> \n> Herzlichen Dank Oliver! Ich werde es dann gleich probieren. Mit Netscape geht es aber nicht? NUn, aber wenigstens etwas! Danke nochmals!\n> Falls jemand für den Netscape auch eine Lösung hat, bitte ich ihn diese zu schreiben! Danke vielmals\n> \n> TIM\n\n</textarea></td></tr><tr><td align=right nowrap valign=top><b>URL Ihrer Homepage<br>(optional):</b></td><td valign=top><input type=text name="url" value="http://" size=35 style="width:260px; font-family:Arial,Sans-serif; font-size:10pt"></td></tr><tr><td align=right nowrap valign=top><b>URL einer eigenen Grafik<br>(optional):</b></td><td valign=top><input type=text name="img" value="http://" size=35 style="width:260px; font-family:Arial,Sans-serif; font-size:10pt"></td></tr><tr><td nowrap valign=top colspan=2><input type=submit value="Nachricht absenden"> <input type=reset value="Eingaben verwerfen"></td></tr></table></form><br><p>Bitte nur <b>einmal</b> auf <i>Nachricht absenden</i> klicken, dann abwarten!</p><table cellpadding=4 cellspacing=1 width=100%><tr><td bgcolor=#EEEEEE class="doc"><a href="#top"><img src="/selfhtml/xgoup.gif" width=14 height=10 border=0></a></td></tr></table><hr noshade size=1><p><nobr><a class="an" name="top"><img src="/selfhtml/x2.gif" width=16 height=13 border=0></a><a href="/selfaktuell/index.htm"><b>SELFHTML aktuell</b></a> <a class="an" name="top"><img src="/selfhtml/x2.gif" width=16 height=13 border=0></a><a href="javascript:Aendern()"><b>Die ganze Seite ändern</b></a></nobr></p></body></html>";
        function Aendern() {
        var neueseite=ganzeseite.replace(//g,"HALLO")
        document.open();
        document.write(neueseite);
        document.close();
        }
        document.open();
        document.write(ganzeseite);
        document.close();
        </script>

        ------------------------------------

        Ich hoffe, das kommt richtig formatiert heraus. Wichtig ist natuerlich, daß alles, was nach "var ganzeseite" und vor "function Aendern()" steht, alles in einer Zeile ist.

        1. Ich hoffe, das kommt richtig formatiert heraus.

          Es hat nicht geklappt. Im Forum werden offenbar
          alle benannten HTML-Zeichen zurück in die Klarform formatiert.
          Und bei Javascript muß jedes Byte stimmen.

          Ich habe die Beispielsdatei jetzt hochgeladen auf
          http://rummelplatz.uni-mannheim.de/ucgi/jura/garcia/macsys/dynamisch-aendern.html

          Gruß,

          Oliver

          1. Nun die Idee ist toll, die Umsetzung perfekt durchdacht.. nur leider kann ich es nicht gebrauchen :-(
            Es ist nämlich so dass die Seite selbst schon zuvor durch ein CGI Scrpit (dass ich aber eben leider NICHT verändern darf/kann) dynamisch generiert wird.
            Bei dieser dynamischen Seite ist der Befehl
            <SCRIPT LANGUAGE=JavaScript src=JavaScript.js>
            "eingebaut" und diese JavaScript.js ist das einzige was ich ändern darf/kann.

            Ich hoffe, das kommt richtig formatiert heraus.

            Es hat nicht geklappt. Im Forum werden offenbar
            alle benannten HTML-Zeichen zurück in die Klarform formatiert.
            Und bei Javascript muß jedes Byte stimmen.

            Ich habe die Beispielsdatei jetzt hochgeladen auf
            http://rummelplatz.uni-mannheim.de/ucgi/jura/garcia/macsys/dynamisch-aendern.html

            Gruß,

            Oliver