2010-10-24 14 views
5

Ich muss den gesamten Inhalt einer Seite mit Javascript erhalten und es an ein Server-Skript senden, um es zu speichern. Ich möchte dies tun, nachdem der Benutzer einige Änderungen an der Seite mit AJAX und anderen Javascript-Tools vorgenommen hat. Ich will den Zustand bestimmter Elemente nicht. Ich möchte im Wesentlichen alles innerhalb des Body-Tags erhalten, damit ich es an ein serverseitiges Skript übergeben kann. Ich habe getelementbyid usw. versucht aber es scheint die Seite in eine Schleife zu bringen und abzustürzen.Kann ich den aktuellen Zustand einer Webseite erfassen und speichern mit Javascript

Danke

+1

Können Sie nach dem Code, den Sie sich beziehen? – InSane

+0

Ich denke, Sie können den Baum vom HTML-Knoten aus sprechen und alle Informationen abrufen und mit Javascript an Ihre eigene Website senden, wenn die Seite auch die Seite Ihrer eigenen Website ist. Aber das ist fast so, als würde man Firefox starten, indem man alle RAM- und Betriebssystemdaten auf der Festplatte speichert und wiederherstellt (wie den Computer im Ruhezustand). Am besten ist es, wenn Sie einige Status oder Flags speichern und diese speichern und die Seite entsprechend erneut rendern. Oder benutze AJAX Bookmark and History, wenn du das brauchst. –

+0

Haben Sie eine Lösung gefunden? – netadictos

Antwort

2

Sicher kannst du, wenn du willst. Es gibt ein Element des DOM-Baums namens "Dokument", das das gesamte Dokument enthält. Es gibt Möglichkeiten, einen DOM-Baum in den meisten Bibliotheken in HTML zu übersetzen; Anwenden auf den document Knoten sollte die Aufgabe erledigen.

Einige Hacken über lange diese Linien sollten Sie auf die richtige Spur bringen.

Aber brauchen Sie wirklich müssen Sie das tun? Warum?

+0

Nun..es ist irgendwie verrückt..aber es ist mir aufgefallen, dass ich ein extrem faules CMS für eine statische Seite machen könnte. Ich werde nur ckeditor auf jeder Seite setzen, wenn der Benutzer fertig ist, Änderungen vorzunehmen Ich werde die gesamte Seite als eine statische HTML-Seite speichern.versionieren sollte einfach sein, nur ein paar grundlegende Login und erledigt. – Dogbot

+0

Nicht verrückt, so funktioniert ein Wiki. Sollte Spaß machen zu sehen; Gib mir Bescheid. –

+0

Wie würden Sie die Dom-Struktur verwenden, um den Status aller JavaScript-Variablen auf der Seite zu speichern? –

4

Versuchen Sie, den folgenden Code:

var body = document.getElementsByTagName("body"); 
var bodycontent = body[0]; 

Then "bodycontent.innerHTML", um den Inhalt der es abzurufen. Wenn ich mich nicht irre, sollte es den aktuellen Inhalt des Körpers nach irgendwelchen Javascript-Modifikationen, die dazu gemacht wurden, zur Verfügung stellen.

+2

alternativ würde "body [0] .innerHTML" funktionieren, wenn Sie die Variable "bodycontent" eliminieren möchten, oder wenn Sie sehr knapp sein möchten, können Sie einfach "document.getElementsByTagName (" body ") verwenden [0] .innerHTML "um auf den Inhalt zuzugreifen, ohne irgendwelche Variablen zu verwenden - es funktioniert, ist aber etwas weniger leicht zu lesen;) –

+0

fantastisch, ich werde diese heute versuchen! – Dogbot

+0

Werden die Änderungen auch an allen JavaScript-Funktionen und Variablen gespeichert? In einigen Fällen ist möglicherweise eine dauerhafte Speicherung von JavaScript-Variablen erforderlich. –

2

Es sollte einfach so funktionieren:

javascript: document.body.innerHTML;

jquery. $ ("body") innerHTML-

+0

cool, ich bin bereits mit jquery auf meinen Seiten. Vielen Dank – Dogbot

Verwandte Themen