Henry: document.documentElement.outerHTML ist nicht der Originalquelltext

Hallo,

document.documentElement.outerHTML

gibt zwar den Inhalt des Dokuments wieder aber nicht 1:1. Es ist dann schon die gerenderte Version des Browsers. Welche Möglichkeit habe ich, nur Js & HTML, den Originalquelltext zu bekommen?

Gruss
Henry

--
Meine Meinung zu DSGVO & Co:
„Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
  1. Hallo Henry,

    sinnvolle Antwort: keine.

    unsinnige Antwort: via fetch die Dokument-Resource abfragen und die Daten von Hand rauspfriemeln.

    Freundliche Grüße,
    Christian Kruse

    1. Hallo Henry hallo Christion,

      unsinnige Antwort: via fetch die Dokument-Resource abfragen und die Daten von Hand rauspfriemeln.

      so mache ich es, wobei das „Daten von Hand rauspfriemeln“ sich recht einfach gestaltet:

      pre_element.innerHTML =  httpxmlrequest.responseText.replace(/</g,"&lt;").replace(/\t/g,"&nbsp;&nbsp;");
      

      Gruß
      Jürgen

      1. Hallo Jürgen,

        um festzustellen, ob das eine Lösung ist, muss man aber schon genau die Anforderungen an das Gewerk kennen.

        • HTML als HTML Source anzeigen
        • Symbole wie &euro durch € ersetzen
        • Whitespace und Zeilenumbrüche beibehalten.

        Das Ersetzen von \t durch &nbsp;&nbsp; finde ich allerdings merkwürdig, was spricht gegen die tab-size Eigenschaft des pre-Elements?

        Rolf

        --
        sumpsi - posui - obstruxi
        1. Hallo Rolf,

          Das Ersetzen von \t durch &nbsp;&nbsp; finde ich allerdings merkwürdig, was spricht gegen die tab-size Eigenschaft des pre-Elements?

          als ich das Script vor etwa 10 Jahren geschrieben habe, kannte ich die tab-size Eigenschaft des pre-Elements noch nicht. Kann wahrscheinlich weg.

          Gruß
          Jürgen

    2. Hi,

      unsinnige Antwort: via fetch die Dokument-Resource abfragen und die Daten von Hand rauspfriemeln.

      wobei ein nachträgliches fetch nicht notwendigerweise denselben Quelltext liefert wie der ursprüngliche Request.

      cu,
      Andreas a/k/a MudGuard

  2. Hallo Henry,

    willst Du das HTML Dokument? So wie der Browser es tut, wenn Du ihm "Seitenquelltext anzeigen" sagst?

    Dann hilft wirklich nur der Abruf der HTML Ressource. Das kann allerdings tricky sein, vor allem nach POST Requests. Ein POST Request kann Dinge am Server ändern, so dass Du möglicherweise außer Stande bist, die exakte HTML Quelle zur aktuellen Seite nochmal abzurufen.

    Script-Quelltexte findest Du über die scripts-Colletion des geladenen Dokuments. Ob es inline-Scripte oder externe Scripte sind, findest Du vermutlich über die Attribute src und text heraus.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Hallo,

      Dann hilft wirklich nur der Abruf der HTML Ressource. Das kann allerdings tricky sein, vor allem nach POST Requests. Ein POST Request kann Dinge am Server ändern, so dass Du möglicherweise außer Stande bist, die exakte HTML Quelle zur aktuellen Seite nochmal abzurufen.

      ... und wenn es ihm gelingt, dann eventuell mit Nebenwirkungen auf der Serverseite.

      Live long and pros healthy,
       Martin

      --
      Motorradfahren ist wie Sex: Du musst dem Gummi vertrauen.
    2. Hi,

      Dann hilft wirklich nur der Abruf der HTML Ressource. Das kann allerdings tricky sein, vor allem nach POST Requests. Ein POST Request kann Dinge am Server ändern, so dass Du möglicherweise außer Stande bist, die exakte HTML Quelle zur aktuellen Seite nochmal abzurufen.

      Es kann auch bei GET passieren. Und auch ohne Parameter. Die Seite kann sich ja mit der Zeit verändern. Z.B. sowas wie ein serverseitig reingeneriertes Abrufdatum. Oder neue Meldungen oder …

      cu,
      Andreas a/k/a MudGuard

  3. Ohne jedem einzeln zu antworten,
    vielen Dank an alle.

    Ich hatte gehofft, dass es doch irgendeine Funktion gäbe, die das möglich macht, schliesslich kann ich den Originaltext ja auch sehen, wenn zb. rechte Maustaste -> Quelltext anzeigen.

    Scheint aber doch nicht so zu sein, das ist schon mal gut zu wissen, erspart mir weitere stundenlange Suche danach. Es sind zwar nur Kleinigkeiten, die abweichen, aber dennoch manchmal ärgerlich. So sind zb. selbständig browsereingefügte Attribute störend.

    Gruss
    Henry

    --
    Meine Meinung zu DSGVO & Co:
    „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
    1. Hallo Henry,

      Ich hatte gehofft, dass es doch irgendeine Funktion gäbe, die das möglich macht, schliesslich kann ich den Originaltext ja auch sehen, wenn zb. rechte Maustaste -> Quelltext anzeigen.

      Auch das ist nicht zwangsläufig das Original.

      Bis demnächst
      Matthias

      --
      Du kannst das Projekt SELFHTML unterstützen,
      indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
      1. Hallo Matthias,

        Ich hatte gehofft, dass es doch irgendeine Funktion gäbe, die das möglich macht, schliesslich kann ich den Originaltext ja auch sehen, wenn zb. rechte Maustaste -> Quelltext anzeigen.

        Auch das ist nicht zwangsläufig das Original.

        Aha. Ein Beispiel?

        Gruss
        Henry

        --
        Meine Meinung zu DSGVO & Co:
        „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
        1. Hallo Henry,

          Auch das ist nicht zwangsläufig das Original.

          Aha. Ein Beispiel?

          Ich hatte gedacht, dass auch hier schon die browserinterne Fehlerkorrektur zum Tragen kommt, etwa bei Verschachtelungsfehlern, aber das kann ich auf die Schnelle nicht bestätigen.

          Bis demnächst
          Matthias

          --
          Du kannst das Projekt SELFHTML unterstützen,
          indem du bei Amazon-Einkäufen Amazon smile (Was ist das?) nutzt.
          1. Hallo Matthias,

            Auch das ist nicht zwangsläufig das Original.

            Aha. Ein Beispiel?

            Ich hatte gedacht, dass auch hier schon die browserinterne Fehlerkorrektur zum Tragen kommt, etwa bei Verschachtelungsfehlern, aber das kann ich auf die Schnelle nicht bestätigen.

            Das hat der Chrome mal gemacht, ist inzwischen aber wieder beim Original anzeigen angekommen.

            Freundliche Grüße,
            Christian Kruse

          2. Hallo Matthias,

            Ich hatte gedacht, dass auch hier schon die browserinterne Fehlerkorrektur zum Tragen kommt, etwa bei Verschachtelungsfehlern, aber das kann ich auf die Schnelle nicht bestätigen.

            damit liegst du - zumindest bei Firefox und seiner Sippe - gar nicht so falsch. Er zeigt zwar in der Quelltextansicht (Ctrl-U) meines Wissens den Original-Quelltext an, weist aber mit bestimmten Farben z.B. auf unpaarige Tags oder Verschachtelungsfehler hin. Insofern: Nicht Fehlerkorrektur, aber zumindest Fehlermarkierung.

            Live long and pros healthy,
             Martin

            --
            Motorradfahren ist wie Sex: Du musst dem Gummi vertrauen.
      2. Hallo Matthias,

        dachte ich auch - wenn der Server was anderes ausliefert als beim ersten GET.

        Aber ich habe das gerade mal lokal nachzustellen versucht: Eine HTML Datei von localhost geladen, serverseitig verändert und DANN und "Quelltext anzeigen" befohlen. Ich habe den Inhalt vor der Änderung gesehen.

        Klick in die Adresszeile und ENTER: Jetzt erst kommt der neue Inhalt. D.h. das erste Anzeigen lädt das, was der Browser schon kennt, und erst wenn man das aktualisiert, kommt der neue Wert vom Server

        Wenn man mit Cache-Control:max-age=10 dafür sorgt, dass der Browser die HTML Datei 10s lang puffert, kommt die neue Version auch in der view-source Anzeige erst nach 10s.

        Rolf

        --
        sumpsi - posui - obstruxi