Frank: alert-Box-Anzeige des html-Quelltexts einer Seite per JavaScript

Hallo,
ich weiß, dass das irgendwie möglich war|ist; ich weiß aber nicht mehr wie? War das browserabhängig?

Naja, was ich vorhabe, ist den html-Quelltext einer beliebigen Seite per Javascript einer Variablen zuzuweisen und diese dann in einer alert-Box anzuzeigen.

Vielleicht erinnert sich eine|r besser als ich.

Schühüss
Frank

  1. Hi,

    Naja, was ich vorhabe, ist den html-Quelltext einer beliebigen Seite

    definiere "beliebige Seite". Gewöhnlich hast Du auf nichts Zugriff, was sich außerhalb des Browserfensters (und darin definierter Objekte) befindet; und auch dort gibt es Sicherheitsbestimmungen.

    per Javascript einer Variablen zuzuweisen

    Das geht nur schwerlich. Einige Browser können dies mit dem/einem aktuellen Dokument machen.

    und diese dann in einer alert-Box anzuzeigen.

    Was hälst Du von 'location.href="view-source:http://domain.de/pfad/zur/ressource";'?

    Cheatah

    1. Nabend,

      Naja, was ich vorhabe, ist den html-Quelltext einer beliebigen Seite
      definiere "beliebige Seite". Gewöhnlich hast Du auf nichts Zugriff, was sich außerhalb des Browserfensters (und darin definierter Objekte) befindet; und auch dort gibt es Sicherheitsbestimmungen.

      Ok. Also eine, die ich gerade in einen frame geladen habe, names source;
      dann will ich den Quelltext von source in einer Variablen speichern und in einer alert-Box ausgeben.
      Naja stimmt zwar soo ho nicht, aber es wäre der entscheidende Lösungsschritt zu meinem Problem. Wichtig ist eben, dass ich den Quelltext voll in die Finger kriege.

      Das geht nur schwerlich. Einige Browser können dies mit dem/einem aktuellen Dokument machen.

      Ja, genau wie war denn das nochmal? Schwerlich, meinetwegen auch das!!

      Was hälst Du von 'location.href="view-source:http://domain.de/pfad/zur/ressource";'?

      Nix. Was ist den view-source? Ist das IE oder Netsie? Und ist location.href tatsächlich schreibbar?

      Irgendwie tu ich mich scheinbar schwer beim Formulieren meiner Fragen. Ist das nicht grässlich?

      Awaiting more info. Thanx.

      Frank

      1. Hallo Frank!

        Hört sich so an als ob das genau für dich und genau für eine URL willst. Dann
        tipp doch einfach mal:
        view-source:http://www.teamone.de/selfaktuell/ in die URL-Zeile deines Browsers.

        Das 'view-source' kannst du natürlich auch vor jede andere URL tippen.

        Wenn die Datei in einem Frameset steckt, bekommst du natürlich erstmal den Quelltext des Framesets. Dort die interesannte URL rauszusuchen und in die URL-Zeile zu Copy&Pasten ist zwar Handarbeit aber nicht so richtig schwierig.

        Ansonsten könnte im IE bei Lax eingestellter Sicherheit (Auf Framedaten über Domaingrenzen hinweg zugreifen oder so, ich hab keinen IE) auch folgendes gehen:
           alert(top.frames["nameVomFrameDenDuAnzeigenWillst"].getElementsByTagName("html")[0].innerHTML);

        Dazu musst du den Code natürlich im dem Frameset haben, also die zu untersuchende URL in ein eigenes Frameset einbinden. Ist aber irgendwie eher schwieriger als die Methode mit dem view-source.

        Evtl. kannste auch was mit Bookmarklets machen, aber dazu soll sich mal einer der IE Experten äussern.

        Gruss,
         Carsten

        1. Hi,

          Hört sich so an als ob das genau für dich und genau für eine URL willst. Dann
          tipp doch einfach mal:
          view-source:http://www.teamone.de/selfaktuell/ in die URL-Zeile deines Browsers.

          Funzt!

          Wenn die Datei in einem Frameset steckt, bekommst du natürlich erstmal den Quelltext des Framesets. Dort die interesannte URL rauszusuchen und in die URL-Zeile zu Copy&Pasten ist zwar Handarbeit aber nicht so richtig schwierig.

          Klar!

          Ansonsten könnte im IE bei Lax eingestellter Sicherheit (Auf Framedaten über Domaingrenzen hinweg zugreifen oder so, ich hab keinen IE) auch folgendes gehen:
             alert(top.frames["nameVomFrameDenDuAnzeigenWillst"].getElementsByTagName("html")[0].innerHTML);

          Was macht die [0] denn da?

          Kann ich mir gut vorstellen! Aber wie krieg ich's beim Netsie 4.7 hin, mangels innerHTML?

          Ja, es geht eben schlicht drum, unformatierte Datensätze dynamisch einzulesen, wobei sich die Datensätze in statischen Dateien befinden.

          Ansonsten, well done, Carsten. Thanx.

          Gruß
          Frank

          1. Hallo Frank!

            alert(top.frames["nameVomFrameDenDuAnzeigenWillst"].getElementsByTagName("html")[0].innerHTML);

            Was macht die [0] denn da?

            getElementsByTagName fischt die Elemente ja anhand ihres Tag-Namens aus der Datei. Und ausser bei "html" sind das meistens mehr als eins: Die werden dann durchnummeriert. (<p>'s z.B. sollen ja häufiger vorkommen (dürfen).)

            Kann ich mir gut vorstellen! Aber wie krieg ich's beim Netsie 4.7 hin, mangels innerHTML?

            Gar nicht.
            Das einzige woran du bein Netscape kommen kannst sind Javascript Objekte und Formularinhalte.

            Ja, es geht eben schlicht drum, unformatierte Datensätze dynamisch einzulesen, wobei sich die Datensätze in statischen Dateien befinden.

            Ab ca 10,-/Monat kannst du Server-Platz mit PHP (oder Perl) kaufen. Das hat den Vorteil das es funktioniert. (Im Gegensatz zu Javascript das funktioniert wenn...)

            Lieber rumbasteln?

            Notwendige Vorraussetzung: alle Daten liegen auf dem gleichen Server.

            Du kannst das Format der Format der statischen Dateien bestimmen?

            Nein: http://www.teamone.de/selfaktuell/artikel/jsfileop/artikel.htm

            Ja:
            die Daten-Datei enthält im wesentlichen ein <form><textarea> Deine Daten hier</textarea></form> Dieses Dateien kannst du in einen (unsichtbaren) Frame laden ->per Javascript auch durchaus dynamisch, dann auslesen und per Script formatiert ausgeben. Das Script kommt zweckmässigerweise ins Frameset(welches zwei Frames, nämlich Daten und Ausgabe enthält.)

            Alternativ kannst du auch Javascript in den Frame laden: <script>daten="Deine Daten hier;</script><body onLoad="top.anzeigen(daten);">

            Gruss,
             Carsten

            1. Hi Carsten,

              die Daten-Datei enthält im wesentlichen ein <form><textarea> Deine Daten hier</textarea></form> Dieses Dateien kannst du in einen (unsichtbaren) Frame laden ->per Javascript auch durchaus dynamisch, dann auslesen und per Script formatiert ausgeben. Das Script kommt zweckmässigerweise ins Frameset(welches zwei Frames, nämlich Daten und Ausgabe enthält.)

              Ist zwar nicht hyper-elegant, aber gefällt mir. Gut. Hätt ich eigentlich auch drauf kommen können, aber nein ..., bin ich ja nicht.

              Danke
              Frank

        2. Hallo,

          Evtl. kannste auch was mit Bookmarklets machen, aber dazu soll sich mal einer der IE Experten äussern.

          Wie Du es vorgeschlagen hast (Beispiel für das aktuelle Dokument:
          <javascript:alert(document.getElementsByTagName('html')[0>.innerHTML)])
          einfach als Lesezeichen abgelegt. Funktioniert bei IE und Netscape 6.

          [Frank:]

          Ja, es geht eben schlicht drum, unformatierte Datensätze dynamisch einzulesen, wobei sich die Datensätze in statischen Dateien befinden.

          Schau Dir mal die Netscape-Java-Lösung an, die in den Selfaktuell-Beiträgen beschrieben wird.

          Gruß,
          Oliver

          1. Hallo,

            Schau Dir mal die Netscape-Java-Lösung an, die in den Selfaktuell-Beiträgen beschrieben wird.

            Hab ich schon, aber ist das das letzte Wort in dieser Sache unter dieser Sonne?
            Ich hoffe, nicht.

            Gruß
            Frank