2012-04-13 6 views

Antwort

14

das tun sollte und wird die ALL-Seite nicht nur den Körper

console.log(document.getElementsByTagName('html')[0].innerHTML); 
+1

das ist wahrscheinlich besser, aber wieder, das Problem ist es zu retten. Es könnte ein Bookmarklet Nein benötigen? – user420667

+0

hängt davon ab, wo Sie es speichern möchten, Sie können es einer Variablen zuweisen, einen Ajax-Aufruf ausführen und es in einer Datenbank oder als Datei speichern. – GillesC

+1

aber das alles erfordert, dass ich mein Skript in die Seite injiziere, nicht wahr? – user420667

3

document.body.innerHTML erhalten Sie die HTML-Darstellung des aktuellen Dokuments Körper.

Das wird nicht unbedingt alle internen Status von DOM-Objekten einschließen, da der HTML-Code den anfänglichen Standardstatus von Objekten enthält, nicht unbedingt den Status, in dem sie möglicherweise geändert wurden. Die einzige Möglichkeit, um sicherzustellen, dass Sie diesen Status erhalten, besteht darin, eine Liste mit dem Status zu erstellen, den Sie speichern möchten, und diesen Status tatsächlich programmgesteuert abzurufen.

Um den Teil Ihrer Frage zum Speichern zu beantworten, müssen Sie mehr beschreiben, welches Problem Sie wirklich lösen möchten.

+0

cool ... aber dann brauche ich einen Weg, um das richtig zu speichern? Soll ich also ein Bookmarklet erstellen, das document.body.innerHTML in die Zwischenablage kopiert? – user420667

+0

@ user420667 - Sie müssen mehr über das Problem beschreiben, das Sie wirklich lösen wollen, um weiter zu antworten. – jfriend00

+0

das Problem: Ich besuche eine Webseite, ich möchte sie speichern und es ist Zustand) nachdem ich mit ihr interagiert habe. – user420667

17

In Chrome (und anscheinend Firefox) greifen, gibt es eine spezielle Kopie() -Methode, die den gerenderten Inhalt in die Zwischenablage kopiert. Dann können Sie tun, was Sie wollen, indem Sie es in Ihren bevorzugten Texteditor einfügen.

https://developers.google.com/chrome-developer-tools/docs/commandline-api#copyobject

Console Beispiel:

copy (document.body.innerHTML);

Hinweis: Ich habe festgestellt, dass Chrome-Berichte nach der Ausführung der Methode undefiniert sind. Sie scheint jedoch korrekt ausgeführt zu werden und der richtige Inhalt befindet sich in der Zwischenablage.

+1

Fantastisch! Ich habe seit Jahren ewig gesucht. Keine Ahnung, warum es nicht höher bewertet wird - es ist genau das, was benötigt wird. Vielen Dank! – digitaltoast

+1

Du hast mein Leben gerettet! – tamtom