Peter Fast: Text dynamisch ersetzen?

Hallo,

auf meiner Seite habe ich einen Begriff, den ich gerne mit einem anderen Begriff ersetzen möchte (per Javascript). Zum Beispiel möchte ich ein Wort in einem HTML-String ersetzen.

Nehmen wir an, dass auf jeder Seite (auch bei Suchergebnissen, etc.)  ein Bild geladen wird. Die HTML des Bildes sei http://www.abcd.de/img/bild1.jpg
Nun möchte ich im <head> (wenn möglich auch im <body>-Teil) das Wort "img" mit "pic" ersetzen. (Weil z.B. der Ordername geändert worden ist)

Jetzt speziell auf meine Seite bezogen, muss das gleiche Wort etwa 130x mit immer dem gleichen Wort ersetzt werden.
Wie kann ich es machen, damit es bei jedem Laden der Seite ersetzt wird?
Es ist sehr wichtig und ich würde mich, um jede Hilfe freuen.

  1. auf meiner Seite habe ich einen Begriff, den ich gerne mit einem anderen Begriff ersetzen möchte (per Javascript). Zum Beispiel möchte ich ein Wort in einem HTML-String ersetzen.

    String.replace()

    Nun möchte ich im <head> (wenn möglich auch im <body>-Teil) das Wort "img" mit "pic" ersetzen. (Weil z.B. der Ordername geändert worden ist)

    Jetzt speziell auf meine Seite bezogen, muss das gleiche Wort etwa 130x mit immer dem gleichen Wort ersetzt werden.
    Wie kann ich es machen, damit es bei jedem Laden der Seite ersetzt wird?

    Ich weiß ja nicht, welchen Grund das alles genau haben soll, aber so, wie du es bis hierhin dargestellt hast, ist dies per Javascript bei jedem Laden der Seite zu erledigen so sinnig, wie den Wasserverlust durch ein Loch im Eimer dadurch zu beheben, dass man zehn zusätzliche Eimer Wasser mitschleppt, aus denen alle zweieinhalb Schritte der kaputte Eimer nachgefüllt wird. In anderen Worten: Ändere den HTML-Code.

    1. String.replace()

      Hierbei muss ich aber dann alles zwischen <script></script> haben.
      Aber wie kann ich es machen, dass ich z.B. nur einen Code einfüge (irgnendwo im Quellcode) und dann automatisch die normalen HTML Einträge ersetzt werden?

      1. hi,

        String.replace()

        Hierbei muss ich aber dann alles zwischen <script></script> haben.

        Nein, natürlich nicht. Du musst nur das, worin du ersetzen willst, in einem String haben - also bspw. aus der .innerHTML-Eigenschaft eines Elements, der du dann anschliessend den neuen Wert wieder zuweist. Dabei aber aufpassen, dass du mit der Ersetzerei nichts anderes "kaputt" machst.

        Aber wie kann ich es machen, dass ich z.B. nur einen Code einfüge (irgnendwo im Quellcode) und dann automatisch die normalen HTML Einträge ersetzt werden?

        Noch mal: Sinnvoll ist das kaum.
        Besucher ohne Javascript werden nur broken images sehen, und wenn bspw. Suchmaschinen auch eine Bilder indizieren sollen, finden diese die mit falschen Pfaden im HTML auch nicht.

        Jabvascript ist der schlechteste denkbare Ansatz.
        Wenn schon nicht im HTML geändert werden soll - dann könnte man noch den Server so konfigurieren, dass er auf die neuen Ressourcen umleitet.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Das mit dem Bild war nur ein Beispiel.
          Verändert soll ein "tag", der auf eine PHP-Seite zugreift.

          Z.B. www.abcd.de/?tag=abc

          "abc" geht aber nicht mehr, und muss jetzt in "def" geändert werden. Allerdings soll das halt nur bei allen alten Beiträgen geändert werden. Einträge, die neu auf der Seite erscheinen enthalten dann von Anfang an "def".

          Kann man denn eine sinnvollere Variante nehmen, als Javascript? Von Hand alles zu ändern würde Tage dauern, bei der Anzahl von Beiträgen im 4-stelligem Bereich.

          1. Hallo,

            Kann man denn eine sinnvollere Variante nehmen, als Javascript? Von Hand alles zu ändern würde Tage dauern, bei der Anzahl von Beiträgen im 4-stelligem Bereich.

            Benutz einfach ein serverseitiges Script oder modifiziere falls möglich einfach die Datenbank.

            Allerdings frae ich mich sowieso, wieso in so vielen Dateien(?) überall das gleiche drin steht. Solche Adressen sollten im Idealfall einmal irgendwo zentral gespeichert werden.

            Jonathan

            1. Benutz einfach ein serverseitiges Script oder modifiziere falls möglich einfach die Datenbank.

              »»

              Wie kann ich denn den bestimmten Text in phpmyadmin ersetzten, also alle mit einem Befehl?

              1. hi,

                Benutz einfach ein serverseitiges Script oder modifiziere falls möglich einfach die Datenbank.

                Wie kann ich denn den bestimmten Text in phpmyadmin ersetzten, also alle mit einem Befehl?

                Auch MySQL kennt reguläre Ausdrücke zum Suchen und Ersetzen.

                Dass du dabei, wenn es an Erfahrung fehlt, als allererstes mal eine Sicherheitskopie der Daten ziehen solltest, dürfte klar sein.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1. Auch MySQL kennt reguläre Ausdrücke zum Suchen und Ersetzen.

                  Wie mache ich es denn ganz genau?

                  Dass du dabei, wenn es an Erfahrung fehlt, als allererstes mal eine Sicherheitskopie der Daten ziehen solltest, dürfte klar sein.

                  Sicher weiß ich das.

                  1. Hallo,

                    Wie mache ich es denn ganz genau?

                    STFW ;)

                    Jonathan

                    1. Danke Jonathan.
                      Aber ich habe es inzwischen selbst gefunden, bevor ich die Antwort gelesen habe.
                      Danke an alle.

      2. String.replace()

        Hierbei muss ich aber dann alles zwischen <script></script> haben.
        Aber wie kann ich es machen, dass ich z.B. nur einen Code einfüge (irgnendwo im Quellcode) und dann automatisch die normalen HTML Einträge ersetzt werden?

        Du könntest mit z.B. einer while-Schleife jedes HTML Element Deines Dokumentes durchlaufen und jeweils mit innerHTML auf den Inhalt
        zugreifen und verändern.