document.documentElement.outerHTML ist nicht der Originalquelltext
![](/uploads/users/avatars/000/006/887/thumb/henry_dunant.png?v=63779180288)
- html
- javascript
3 Christian Kruse
0 Rolf B
0 Der Martin
1 MudGuard
0 Henry
0 Matthias Apsel
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
Hallo Henry,
sinnvolle Antwort: keine.
unsinnige Antwort: via fetch
die Dokument-Resource abfragen und die Daten von Hand rauspfriemeln.
Freundliche Grüße,
Christian Kruse
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,"<").replace(/\t/g," ");
Gruß
Jürgen
Hallo Jürgen,
um festzustellen, ob das eine Lösung ist, muss man aber schon genau die Anforderungen an das Gewerk kennen.
Das Ersetzen von \t durch finde ich allerdings merkwürdig, was spricht gegen die tab-size Eigenschaft des pre-Elements?
Rolf
Hallo Rolf,
Das Ersetzen von \t durch 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
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
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
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
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
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
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
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
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
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
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
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