Dieter: Seiten-Quelltext in Variable einlesen?

Hallo Forum

ist es möglich mit JavaScript den Quelltext der HTML-Seite in
eine Variable zwecks Weiterverarbeitung einzulesen?

Viele Grüße

Euer Dieter

  1. hallo Dieter,

    ist es möglich mit JavaScript den Quelltext der HTML-Seite in
    eine Variable zwecks Weiterverarbeitung einzulesen?

    prinzipiell ist das Einlesen wohl möglich, die Frage ist aber, wozu du das machen möchtest. Javascript kann bekanntlich keine "Datenverarbeitung" wie Perl oder PHP das können.

    Es wäre sinnvoller, für solche komplexen Aufgaben eine dieser Spracxhen einzusetzen  - aber, wie gesagt, das hängt einfach davon ab, was du machen möchtest.

    Grüße aus Berlin

    Christoph S.

    1. mach ich hier mit meinem bookmarklet (zum killen von delayed popup-scripts, oncontextmenu, und ähnlichem quatsch, damit ich ne seite in ruhe lesen kann)
      -hoffe nur, das board postet den code jetzt auch so... mal schauen

      javascript:if(frames.length>0){fN=prompt('Frame Nr.?\n(1-'+frames.length+') or empty for Frameset-Window','');if(fN==''){FL='opener';source=document.all.tags('html')[0].outerHTML;}else{FL=('opener.frames['+(fN-1)+']');fL=top.frames[(fN-1)];source=fL.document.all.tags('html')[0].outerHTML;}}else{FL='opener';source=document.all.tags('html')[0].outerHTML;}eW=open('','','width=600,height=550');eW.focus();with(eW.document){write('<form name=fM><textarea cols=70 rows=31 name=tA wrap></textarea><input type=button value=Update onclick=with('+FL+'.document){write(document.fM.tA.value);close()}><input type=button value=Close onclick=self.close()>');eW.document.fM.tA.value=source;void(close())}

      1. mach ich hier mit meinem bookmarklet (zum killen von delayed popup-scripts, oncontextmenu, und ähnlichem quatsch, damit ich ne seite in ruhe lesen kann)
        -hoffe nur, das board postet den code jetzt auch so... mal schauen

        javascript:if(frames.length>0){fN=prompt('Frame Nr.?\n(1-'+frames.length+') or empty for Frameset-Window','');if(fN==''){FL='opener';source=document.all.tags('html')[0].outerHTML;}else{FL=('opener.frames['+(fN-1)+']');fL=top.frames[(fN-1)];source=fL.document.all.tags('html')[0].outerHTML;}}else{FL='opener';source=document.all.tags('html')[0].outerHTML;}eW=open('','','width=600,height=550');eW.focus();with(eW.document){write('<form name=fM><textarea cols=70 rows=31 name=tA wrap></textarea><input type=button value=Update onclick=with('+FL+'.document){write(document.fM.tA.value);close()}><input type=button value=Close onclick=self.close()>');eW.document.fM.tA.value=source;void(close())}

        die fragliche stelle ist: source=document.all.tags('html')[0].outerHTML;
        liest aber nur den geladenen source ein, nicht, was der server geschickt hat, das geht nur in netscape, siehe www.bookmarklets.com

        bei rückfragen mail an mich, ich hab auch noch ne netscape-variante da

        soll heissen: scripte, die document.write machen haben dann den geschriebenen text drunter.

      2. hm ...

        schwer zu lesen, so hintereinanderweg. Das hättest du etwas "gefälliger" anbieten können.

        javascript:if(frames.length>0)

        dir geht es also um eine Frames-Konstruktion? Das hättest du gleich sagen können, da sieht einiges wesentlich anders aus.

        {fN=prompt('Frame Nr.?\n(1-'+frames.length+') or empty for Frameset-Window','');

        wie soll denn das mit "or empty for Frameset-Window" funktionieren? zumindest ist das kein Javascript

        if(fN==''){FL='opener';source=document.all.tags('html')

        ach, du willst also wirklich nur für den IE 5.5 und niedriger schreiben? Tut mir leid, das hab ich nicht mehr

        [0].outerHTML

        innerHTML und outerHTML sollte man möglichst vermeiden

        usw.

        mich wundert, daß du bei diesem Code überhaupt erstmal was angezeigt bekommen hast. Hast du mal versucht, dir das im Konqueror anzuschauen?

        Aber ich hatte um den "gesamten" Code gebeten, das heißt, die Einsichtmöglichkeit in HTML und Javascript/Css  -  bei deiner Fragestellung liegt einfach die Vermutung nahe, daß die "Gesamtkontruktion irgendwo klemmt. Mahcs dsoch so wie bereits geraten, lade das hoch in ein temporäres Verzeichnis, so daß man dort online nachschauen kann.

        Christoph S.

        Nicht beantwortet ist auch die Frage, wozu du das machen möchtest.

        1. hm ...

          schwer zu lesen, so hintereinanderweg. Das hättest du etwas "gefälliger" anbieten können.

          sorry wegen der formatierung, wir haben in der schule immer nur 1 std mittags zeit zum surfen :-/

          javascript:if(frames.length>0)
          dir geht es also um eine Frames-Konstruktion? Das hättest du gleich sagen können, da sieht einiges wesentlich anders aus.

          nö, ich wollt nur das GANZE bookmarklet posten statt den teil, der den quelltext einliest. vielleicht hilft das ja jemandem, der nach sowas sucht.

          {fN=prompt('Frame Nr.?\n(1-'+frames.length+') or empty for Frameset-Window','');
          wie soll denn das mit "or empty for Frameset-Window" funktionieren? zumindest ist das kein Javascript

          ne :-D , das ist text, der im prompt('text1'+variable+'text2') angezeigt wird.

          if(fN==''){FL='opener';source=document.all.tags('html')
          ach, du willst also wirklich nur für den IE 5.5 und niedriger schreiben? Tut mir leid, das hab ich nicht mehr

          ja, ich hatte mir das für den ie gebastelt, für netscape gibt es ja, wie gesagt auch ein extra bookmarklet. ein crossbrowser-kompatibles bookmarklet zu schreiben wär wohl auch sehr aufwändig und das ergebnis ellenlang und ausserdem unnötig. warum sollte ich den code für netscape usw. den in meinem ie-bookmarklet mit abspeichern?
          in meinem ie6 gehts übrigens auch... und ich hab nicht alle browser, um es überall zu testen, will ich auch garnicht :-P ;-)

          [0].outerHTML
          innerHTML und outerHTML sollte man möglichst vermeiden

          sorry, bin kein javascript-guru, ich mach bestimmt vieles falsch, weil ich solche sachen nicht weis. :-/

          usw.

          mich wundert, daß du bei diesem Code überhaupt erstmal was angezeigt bekommen hast. Hast du mal versucht, dir das im Konqueror anzuschauen?

          hast du mal versucht, mit dem audi-zündschlüssel nen trecker zu starten? ;-) bookmarklets schreibt man üblicherweise browserspezifisch.

          Aber ich hatte um den "gesamten" Code gebeten, das heißt, die Einsichtmöglichkeit in HTML und Javascript/Css

          bookmarklets bestehen üblicherweise nur aus javascript. also ist das mein gesamter quelltext.

          -  bei deiner Fragestellung ? (dieter hat gefragt, ich hab nur meinen senf dazugegeben) liegt einfach die Vermutung nahe, daß die "Gesamtkontruktion irgendwo klemmt. Mahcs dsoch so wie bereits geraten, lade das hoch in ein temporäres Verzeichnis, so daß man dort online nachschauen kann.

          Christoph S.

          Nicht beantwortet ist auch die Frage, wozu du das machen möchtest.

          wie gesagt, wenn wer das bookmarklet für netscape haben will, bring ich das mal mit.
          PS: ich hoffe nur , ich konnte überhaupt irgendwas nützliches zu dem thema beitragen.

          1. hallo rajko,

            nimm mir den vielleicht etwas knurrigen Ton nicht übel.

            sorry wegen der formatierung, wir haben in der schule immer nur 1 std mittags zeit zum surfen :-/

            dann sollte man sich eben _sehr genau_ überlegen, wa man postet.

            ich wollt nur das GANZE bookmarklet posten statt den teil, der den quelltext einliest

            das hab ich jetzt kapiert. Allerdings bin ich mir nicht sicher, ob wir unter "bookmarklet" dasselbe verstehen

            "or empty for Frameset-Window" ist zumindest kein Javascript
            ne :-D , das ist text, der im prompt angezeigt wird.

            ürks, haste mich erwischt. Das kam durch deine Schreibweise zustande, daß ich das nicht gleich richtig gesehen hab

            ja, ich hatte mir das für den ie gebastelt, für netscape gibt es ja, wie gesagt auch ein extra bookmarklet. ein crossbrowser-kompatibles bookmarklet zu schreiben wär wohl auch sehr aufwändig und das ergebnis ellenlang und ausserdem unnötig

            NEIN, _unnötig_ wäre das ganz und gar nicht. Du mußt daran denken, daß es auch immer mehr Leute gibt, die mit LINUX oder einem der *BSD-Systeme unterwegs sind (ich gehöre übrigens dazu), und dafür gibts nun einmal keinen IE.

            warum sollte ich den code für netscape usw. den in meinem ie-bookmarklet mit abspeichern?

            eben für diejenigen, die keinen IE haben und vielleicht trotzdem auf deine Seite schauen sollen

            innerHTML und outerHTML sollte man möglichst vermeiden
            sorry, bin kein javascript-guru, ich mach bestimmt vieles falsch, weil ich solche sachen nicht weis. :-/

            ok, aber genau deshalb bist du ja hier im Forum am richtigen Ort gelandet. Nur muß auch ein "Guru" erst mal korrekt kapieren können, was du eigentlich machen möchtest. Leider gibt dir in diesem Fall, warum manche Javascript-Befehle "nicht mehr" verwendet werden sollten, SELFHTML auch nicht genug Auskunft, dazu muß man dann auf den Originalseiten bei http://www.w3c.org/ nachlesen

            hast du mal versucht, mit dem audi-zündschlüssel nen trecker zu starten?

            Mein Fahhrrad kannst du mit nem Audi-Schlüssel auch nicht starten, und ein andres Fortbewegungsmittel hab ich nicht

            bookmarklets bestehen üblicherweise nur aus javascript. also ist das mein gesamter quelltext.

            Das Mißverständnis besteht in deinem Beharren auf deinem "Bookmarklet". Dieser Code muß in einer Funktion stehen, und die muß dann wieder aus einer HTML-Seite heraus aufgerufen werden  -  und _dabei_ könnte dein Problem zu finden sein, in der Art, wie dein HTML-Dokument deinen Javascript-Code anspricht und auszunutzen versucht.

            (dieter hat gefragt, ich hab nur meinen senf dazugegeben)

            oh, interessant  -  das konnte ich baer nicht erkennen. Geht ihr in dieselbe Klasse und müßt ihr dieselbe Aufgabe lösen?

            PS: ich hoffe nur , ich konnte überhaupt irgendwas nützliches zu dem thema beitragen.

            Das muß sich noch zeigen. Der Thread zeigt bisher nur, wie man fragen sollte, um sich einer Problembeschreibung anzunähern, aber eine Lösung für die ursprüngliche Frage ist noch nicht da.

            Christoph S.

            1. hallo rajko,

              nimm mir den vielleicht etwas knurrigen Ton nicht übel.

              NÖ (GRRRRRRRRRRR - ;-D)

              sorry wegen der formatierung, wir haben in der schule immer nur 1 std mittags zeit zum surfen :-/
              dann sollte man sich eben _sehr genau_ überlegen, wa man postet.

              ich wollt nur das GANZE bookmarklet posten statt den teil, der den quelltext einliest
              das hab ich jetzt kapiert. Allerdings bin ich mir nicht sicher, ob wir unter "bookmarklet" dasselbe verstehen

              bookmarklets sind javascripte, die als bookmark/favorit im browser abgelegt werden und von dort aus auf jede aktuell geladene seite zugreifen können, als ob sie ein teil dieser wären. (visit: www.bookmarklets.com) also kleine "tools", mit denen du an geladenen seiten etwas verändern kannst.

              "or empty for Frameset-Window" ist zumindest kein Javascript
              ne :-D , das ist text, der im prompt angezeigt wird.
              ürks, haste mich erwischt. Das kam durch deine Schreibweise zustande, daß ich das nicht gleich richtig gesehen hab

              ja, ich hatte mir das für den ie gebastelt, für netscape gibt es ja, wie gesagt auch ein extra bookmarklet. ein crossbrowser-kompatibles bookmarklet zu schreiben wär wohl auch sehr aufwändig und das ergebnis ellenlang und ausserdem unnötig
              NEIN, _unnötig_ wäre das ganz und gar nicht. Du mußt daran denken, daß es auch immer mehr Leute gibt, die mit LINUX oder einem der *BSD-Systeme unterwegs sind (ich gehöre übrigens dazu), und dafür gibts nun einmal keinen IE.

              dann sollen doch die leute, die mit sowas unterwegs sind, für ihren browser ein B*** schreiben, das den eigenheiten ihres browsers bei der verarbeitung von javascript entspricht. mangels vorh. bsd/linux/etc. kann ich das nicht machen...

              warum sollte ich den code für netscape usw. den in meinem ie-bookmarklet mit abspeichern?
              eben für diejenigen, die keinen IE haben und vielleicht trotzdem auf deine Seite schauen sollen

              wie gesagt, das B*** wird ja nicht in die html-seite eingebaut (ausser, man bietet es anderen an, um es sich als link zu speichern)
              sondern aus den bookmarks des browsers heraus gestartet, meist, um fremde seiten zu verändern (zb für brillenträger die schriftgrösse zu erhöhen, oder die hintergrundfarbe, oder die in der statusleiste scrollenden "wir sind die ultracoole supergruppe xy und unseren quelltext bekommst du nie"-meldungen abzuschalten)

              innerHTML und outerHTML sollte man möglichst vermeiden
              sorry, bin kein javascript-guru, ich mach bestimmt vieles falsch, weil ich solche sachen nicht weis. :-/
              ok, aber genau deshalb bist du ja hier im Forum am richtigen Ort gelandet. Nur muß auch ein "Guru" erst mal korrekt kapieren können, was du eigentlich machen möchtest. Leider gibt dir in diesem Fall, warum manche Javascript-Befehle "nicht mehr" verwendet werden sollten, SELFHTML auch nicht genug Auskunft, dazu muß man dann auf den Originalseiten bei http://www.w3c.org/ nachlesen

              hast du mal versucht, mit dem audi-zündschlüssel nen trecker zu starten?
              Mein Fahhrrad kannst du mit nem Audi-Schlüssel auch nicht starten, und ein andres Fortbewegungsmittel hab ich nicht

              bookmarklets bestehen üblicherweise nur aus javascript. also ist das mein gesamter quelltext.
              Das Mißverständnis besteht in deinem Beharren auf deinem "Bookmarklet". Dieser Code muß in einer Funktion stehen, und die muß dann wieder aus einer HTML-Seite heraus aufgerufen werden  -

              siehe oben, nix html-seite, das B** ist ein link, den du dir 'gebookmarkt' hast und der halt nicht per protokoll:http/ftp auf eine adresse im internet verweist sondern per protokoll:javascript auf eine selbst gebastelte, möglichst nützliche ;-) funktion.
                und _dabei_ könnte dein Problem zu finden sein, in der Art, wie dein HTML-Dokument deinen Javascript-Code anspricht und auszunutzen versucht.

              (dieter hat gefragt, ich hab nur meinen senf dazugegeben)
              oh, interessant  -  das konnte ich baer nicht erkennen. Geht ihr in dieselbe Klasse und müßt ihr dieselbe Aufgabe lösen?

              nö, ich kenn ihn nicht weiter.

              PS: ich hoffe nur , ich konnte überhaupt irgendwas nützliches zu dem thema beitragen.
              Das muß sich noch zeigen. Der Thread zeigt bisher nur, wie man fragen sollte, um sich einer Problembeschreibung anzunähern, aber eine Lösung für die ursprüngliche Frage ist noch nicht da.

              Christoph S.

              PS: um es nochmal zu erwähnen, netscape unterstützt z.b. den zugriff von javascript auf bestimmte java-funktionen, womit es möglich ist, den ursprünglichen quelltext aus dem browsercache einzulesen.
              ie unterstützt das nicht, läd also bei meinem B*** nur den schon durch
              -----------------------------
              "document.write('text')"
              -----------------------------
              veränderten quelltext ein, da steht dann also:
              -----------------------------
              document.write('ein text')
              ein text
              -----------------------------

              grüsse, raik :-)