Rainer: Browserquelltext in ein textfeld übertragen

Hallo allerseits,

mein Plan: ein mini-Bugtracker

Ich möchte das ein Besucher ( in einem geschlossenem Bereich) mit einem Mausklick den aktuell bei Ihm angezeigten Browserinhalt/Quelltext in ein Textfeld übertragen kann. Finde im Moment keinen Ansatz dazu. Wer kann mir helfen?

Gruß Rainer

  1. Moin!

    Hast Du innerHTML schon ausprobiert? Ansonsten kannst Du serverseitig den erstellten Seitencode schlicht nochmal in ein Textfeld einfuegen.

    Natuerlich musst Du auf korrektes Escapen achten, sonst zerhaust Du Dir mit solchen Spielchen schnell den Code.

    --
    Signaturen sind blöd!
    1. [latex]Mae  govannen![/latex]

      Hast Du innerHTML schon ausprobiert?

      innerHTML ist nur bedingt nutzbar, da die dort erzeugte Zeichenkette nicht mit dem Quelltext übereinstimm(t|en muß), insbesondere bei defektem HTML. Zur Beurteilung, ob dies ausreicht, kommt es also darauf an, was mit dem per Formular übergebenen Wert weiter geschehen soll. Für Debug-Zwecke wäre es bspw. nicht verwendbar.

      Stur lächeln und winken, Männer!
      Kai

      --
      It all began when I went on a tour, hoping to find some furniture
       Followed a sign saying "Beautiful Chest", led to a lady who showed me her best)
      SelfHTML-Forum-Stylesheet
  2. Hallo,

    1. ermittle, welche Elemente sich in diesem Bereich befinden
    2. ermittle die Eigenschaften
    3. rekursive Ermittlung aller Kindelemente und deren Eigenschaften
    4. Ausgabe deiner "Ermittlungen" in ein Textfeld

    Grüße
    Siri

  3. Moin,

    Ich möchte das ein Besucher ( in einem geschlossenem Bereich) mit einem Mausklick den aktuell bei Ihm angezeigten Browserinhalt/Quelltext in ein Textfeld übertragen kann. Finde im Moment keinen Ansatz dazu. Wer kann mir helfen?

    Wenn du die Seite ausgeben willst, wie sie auf dem Server liegt, kannst du das folgendermaßen tun: http://misterunknown.de/test/source.php

    Den aktuellen Quelltext, wie er im Browser geladen ist kann man meines Wissens nicht anzeigen lassen.

    Grüße Marco

    1. Moin,

      Den aktuellen Quelltext, wie er im Browser geladen ist kann man meines Wissens nicht anzeigen lassen.

      Ich korrigiere mich. Allerdins funktioniert es nicht 100% (html-Tag fehlt, Doctype fehlt ebenfalls). Für Debugging-Zwecke sollte es aber funktionieren:
      http://misterunknown.de/test/sourceJS.html

      Grüße Marco

      1. Moin,

        Den aktuellen Quelltext, wie er im Browser geladen ist kann man meines Wissens nicht anzeigen lassen.

        Ich korrigiere mich. Allerdins funktioniert es nicht 100% (html-Tag fehlt, Doctype fehlt ebenfalls). Für Debugging-Zwecke sollte es aber funktionieren:
        http://misterunknown.de/test/sourceJS.html

        Sollte es. Es wird ja wohl nicht fuer die Analyse oder Veraenderung einer kompletten Seite gebraucht werden. Dafuer nutzt man dann doch sowieso die eingebauten oder nachinstallierten Tools der Browser. Gerade weil von einem geschlossenem System die Rede ist, wo man hoechstwahrscheinlich dafuer sorgen kann, dass alle betroffenen Rechner entsprechendes Werkzeug (Browser oder Plugins fuer die Browser) installiert haben.

        Ich denke es koennte fuer ne Art CMS gedacht sein, wo man das HTML des Contentbereichs angezeigt bekommt und es aendern/speichern koennen soll.

        --
        Signaturen sind blöd!
        1. Leider kann ich nicht dafür sorgen das alle Nutzer vernünftige Browser benutzen. Diese sind weltweit verstreut und die IT-Admins der dort ansässigen Firmen wohl , äähem.... , reden wir nicht darüber, ...

          Die Nutzer werden es nie begreifen das sie den gerade angezeigten Quelltext öffnen sollen und dann mir STRG-A, STRG-C, STRG-V in ein Textfeld kopieren sollen.

          Ich muss das, wenn möglich, irgendwie automatisieren. Der Nutzer meldet einen Fehler über ein Formular. Vor dem senden am besten nur ein Häkchen in einer Checkbox setzen. Das setzen des Häkchens soll dann eine JS-Function ausführen welche den aktuell angezeigten Quelltext in ein <hidden> schreibt und beim absenden mitschickt.

          Ist das überhaupt irgendwie machbar?

          Gruß Rainer

          1. Moin,

            Ich muss das, wenn möglich, irgendwie automatisieren. Der Nutzer meldet einen Fehler über ein Formular. Vor dem senden am besten nur ein Häkchen in einer Checkbox setzen. Das setzen des Häkchens soll dann eine JS-Function ausführen welche den aktuell angezeigten Quelltext in ein <hidden> schreibt und beim absenden mitschickt.
            Ist das überhaupt irgendwie machbar?

            Ich habs gerade probiert. Über ein Hidden-Feld ist die Übertagung der Quelle nicht ohne weiteres möglich (es sei denn ich hab einen Fehler in meinem Skript).

            http://misterunknown.de/test/source.php

            Grüße Marco

            1. Moin,

              Ich habs gerade probiert. Über ein Hidden-Feld ist die Übertagung der Quelle nicht ohne weiteres möglich (es sei denn ich hab einen Fehler in meinem Skript).

              Was du aber relativ problemlos machen kannst, ist mit einer Session zu arbeiten. Ich denke das Hidden-Feld klappt nicht, da in dem Quelltext garantiert Anfürhungszeichen sind, die das value-Attribut abschließen und einen Fehler verursachen. Das Problem hat man aber bei PHP-Variablen nicht. Wenn du quasi mit einer Session arbeitest, kannst du die Daten dort speichern.

              Ein Beispiel:

              http://misterunknown.de/test/sourceSession.php

              Grüße Marco

              1. Hallo Marco,

                da bekomme ich den Quellcode des Scripts eingelesen und übertragen. Ich brauche aber den reinen HTML-Code welchen der Nutzer in seinem Browser angezeigt bekommt. Also die von PHP generierte Ausgabe.
                Du bist da glaub ich auf der falschen Fährte...

                Gruß Rainer

                1. Hoi!

                  Darf ich dezent auf mein erstes Posting hinweisen?

                  --
                  Signaturen sind blöd!
                  1. Moin,

                    Die innerHTML-Werte kriegt man aber wiederum nicht in eine Session-Variable.
                    Und mein Skript funktioniert im Chrome, aber nicht im Firefox -.-

                    Grüße Marco

                    1. Ich denke fuer diese Zwecke reicht das auslesen mit innerHTML. Das ganze wird ordentlich escaped, damit man seinen Code eben nicht zerschiesst und kann dann ganz gewoehnlich an ein Script geschickt. Solange der HTML Code nicht groesser ist, als das was der Webserver entgegennimmt, sollte das kein groesseres Problem sein.

                      --
                      Signaturen sind blöd!
  4. Hallo nochmal...,

    <script type="text/javascript">  
    function fuegeQuelleEin() {  
    document.getElementById("Quelle").innerText = document.documentElement.innerHTML;  
    }  
    </script>
    
    <form action="" method="post">  
    <textarea id="Quelle" name="Quelle" rows="1" cols="1" style="display:none;"></textarea>  
    <input id="qms_i" type="checkbox" onclick="fuegeQuelleEin()" />  
    </form>
    

    Das geht soweit, aber wie "misterunknown" bereits schrieb, eben nicht im FF. Hier fehlt mir jetzt noch die Alternative für den FF oder eine Funktion die eben in allen benötigten Browsern (Opera,Safari,IE ab 8,Chrome und FF) funktioniert.
    Hat wer eine Idee?

    document.getElementsByTagName( "html" ).innerHTML; funktioniert nicht.

    Gruß Rainer

    1. document.getElementsByTagName( "html" ).innerHTML; funktioniert nicht.

      Ne. Weil getElementsByTagName() (der Name gibt einen Hinweis) nicht nur ein Element zurueckgibt. Zitat SelfHTML "Für jeden HTML-Elementtyp wird im Dokument ein Array erzeugt, über den die einzelnen Elemente dann ansprechbar sind." Auch wenn nur ein element mit diesem Tagnamen vorhanden ist, musst Du es mit einem Index ansprechen:

      document.getElementsByTagName( "html" )[0].innerHTML

      --
      Signaturen sind blöd!
      1. Hallo Steel,

        document.getElementsByTagName( "html" )[0].innerHTML

        das gerht leider im FF auch nicht 8(

        Gruß Rainer