Marcus Wengenroth: Quellcode der Seite mit JavaScript auslesen

Gibt es eine Möglichkeit, den kompletten Quelltext einer Seite mit JavaScript auszulesen.

Was ich machen möchte, ist, einer großen Seite etwas zu ergänzen, ohne diese neu laden zu müssen. Also irgendwie so:

function ergaenze()
  {
   quelltext=... ? <- das weiss ich eben nicht...

...jetzt wird der quelltext modifiziert, indem vor dem
   </body> noch etwas eingefügt wird...

document.open();
   document.write(quelltext);
   document.close();
  }

Da sich die ganze Sache im User-Speicher abspielen würde, dürfte die Lösung sehr viel schneller sein, als ein Reload, wo alles neu übertragen werden müsste.

Wenn ihr ansonsten Ideen dazu habt - immer her damit :-)

Grüße, Marcus

  1. Versuch doch einfach mal deinen Code oben.
    Ich glaube das könnte sogar klappen.

    1. Versuch doch einfach mal deinen Code oben.
      Ich glaube das könnte sogar klappen.

      Ja, der Code klappt - habe ich schon ausprobiert, allerdings bin ich nicht in der Lage, den eigentlichen Quellcode auszulesen, also:

      quellcode= ...... <- da ist der Code nicht vollständig!

      Im Augenblick mach ich es in einer Testumgebung über Frames und eine top-Variable, aber das ist sehr umständlich.

      Für Hilfe wäre ich wirklich sehr dankbar :-)))

      Grüße, Marcus

      1. Mit PHP geht datt aba.
        Sascha Stern

        1. Mit PHP geht datt aba.
          Sascha Stern

          grmpf...
          Dann müsste ich doch wieder einen Server-Zugriff machen.
          Es sollte eben OHNE Neuladen funktionieren.

          Grüße, Marcus

          1. Hallo Marcus,

            versuch mal folgendes. Nur ein Vorschlag, ich bin damit zufrieden.

            Mach zwei Frames, einmal oben, einmal unten. Den oberen Frame auf 0 setzen, also verstecken:

            <frameset framespacing="0" frameborder="no" rows="0,*">
               <frame name="oben" marginheight="0" marginwidth="0" scrolling="no" src="about:blank">
               <frame name="unten" marginheight="0" marginwidth="0" scrolling="no" src="about:blank">
            </frameset>

            So, mal schauen, ist schon ne Weile her ;)

            Oh Mann, ich finds nicht.
            Hm, also auf jeden Fall alle Links in den oberen Frame umleiten.

            Und bei jedem Inhalt der im oberen Frame erscheint (oder auch nicht weil wir ihn ja versteckt haben), nach dem </html> das hier einfügen:

            <script language="JavaScript">
            <!--
            parent.main.document.misc.loaded.value = 1;
            //-->
            </script>

            Das setzt voraus, das im unteren Frame ein Formular mit Namen 'misc' vorhanden ist, welches das Inputfeld 'loaded' hat. Das Ganze kann man ja verstecken mit type="hidden".

            So, wenn also alles geladen wurde, wird das Inputfeld mit 1 belegt.

            Die Umleitung des Inhaltes in den oberen Frame erfolgte mit einer JS-Funktion, die

            a) zuerst 'loaded' wieder auf 0 setzt,
            b) den Inhalt oben lädt,
            c) an eine andere Funktion weiterleitet.

            Diese andere Funktion
            a) ruft sich solange selbst auf, wie loaded == 0 ist.
            b) wenn loaded == 1 ist, dann wird alles aus dem oberen Body-Tag in irgendein Div-untengeschrieben.

            --> fertig :)

            Ist ziemlich wirr, wa? Ich find das nicht mehr. Aber so ging es. Vielleicht bringt Dich das ja irgendwie weiter. Wenn Du mehr Interesse an dieser Lösung hast, dann kann ich ja mal mich durch die CDs wühlen ;)

            Hope it helps.

            Gruss
            Torsten Schabdach

            1. Hi,

              kleine Korrektur

              Falsch:

              <script language="JavaScript">
              <!--
              parent.main.document.misc.loaded.value = 1;
              //-->
              </script>

              Richtig:
              <script language="JavaScript">
              <!--
              parent.unten.document.misc.loaded.value = 1;
              //-->
              </script>

              Wir haben ja die Frames 'unten' und 'oben genannt'.

              Gruss
              Torsten

            2. Die Umleitung des Inhaltes in den oberen Frame erfolgte mit einer JS-Funktion, die

              a) zuerst 'loaded' wieder auf 0 setzt,
              b) den Inhalt oben lädt,
              c) an eine andere Funktion weiterleitet.

              Tja, da ist der Hund begraben...
              Wie komme ich an den inhalt? Es bleibt nach wie vor die Frage:
              quelltext=...?

              Und nach wie vor wäre ich sehr dankbar, wenn mir das wer sagen könnte :-)))

              Grüße, Marcus, der die Hoffnung nicht aufgibt!

  2. Hi!

    Ich hab hier neulich folgendes Skript aus einem Post rauskopiert und jetzt als Bookmark:

    javascript:var y = document.getElementsByTagName('html')[0].innerHTML.replace(/&/,'&').replace(/</, '<').replace(/>/,'>'); document.write('<style>html,body{height:100%;margin:0;padding:0;}</style><textarea style="width:100%;height:100%;border:none;margin:0;padding:0;">'+y+'</textarea>');document.close();void(0);

    Hilft dir vielleicht weiter...

    Robin

    1. @Robin: mercí - da hätte ich eignetlich auch selber drauf kommen können, <html> ist ja ein Tag wie jeder andere, ich werde es gleich probieren :-)

      Grüße, Marcus