Vorbei an großen JSON-Objekt auf eine andere Seite in einem neuen Fenster.

Ich entschuldige mich im Voraus, wenn dies hat bereits beantwortet. Ich habe Gegoogelt um für ein paar Stunden jetzt, und ich noch habe nicht gefunden, dass alles scheint zu beantworten, meine genaue Frage.

Im wesentlichen, ich habe einen sehr Komplex/hoch gestylt Ansicht, die die Anzeige von Benutzer-spezifischen Daten aus der Datenbank abgerufen. Eingefangen habe die Daten als JSON-Objekt, befestigt Sie an den Körper meine Seite verwenden .Daten(). Ich habe ein button, der ruft das JSON-Objekt und öffnet meine Drucker-freundliche Seite in einem neuen Fenster. Ich möchte in der Lage sein, um Zugriff auf/Bearbeiten der Benutzer-spezifischen JSON-Objekts in das neue Fenster. (Dies würde alle auf der gleichen Domäne).

Meisten Lösungen, die ich gesehen habe scheinen zentriert werden, um das öffnen einer neuen, leeren Fenster. Ich will nicht, das zu tun. Ich habe codiert, ein layout für die Seite, und ich Plane, auf javascript/css, die auch läuft. Ich habe gesehen, Lösungen, die beinhalten ein neues Fenster öffnen und dann mit document.schreiben, das wäre toll, wenn es einen Weg zum Ziel ein bestimmtes element auf der neuen Seite. Ich habe versucht, zum Beispiel:

x = window.open(url);
x.document.write(myJson);

Was macht das JSON-Objekt auf der neuen Seite, aber komplett wischt alles andere hatte ich in dem layout.

Ich habe auch gesehen, Lösungen vorschlagen, dass stringifying und dann Base64-Kodierung des Objekts. Aber ich bin besorgt über die URL-Länge-Beschränkungen, gegeben, dass Sie könnte möglicherweise sammeln eine Menge von Daten, die auf dieser Seite vor dem klicken auf die Schaltfläche.

Hab ich auch gesehen-Lösungen, die vorschlagen, mit den lokalen HTML5-Speicher. Was ich wohl tun werde, wenn es keine bessere Lösung. Aber HTML5 wirft der browser-Kompatibilität Probleme, und ich würde es vorziehen, Sie zu vermeiden, wenn möglich.

Hier einige Beispiel-code:

JSON-Objekt:

{ 
{
"name":"Percy Pea.",
"bio":"Percy Pea was born in a pod, and lived there happily."
},
{
"name":"James Cob",
"bio":"James Cob was arrested for stalking."
}
}

Ich erfassen, dass, wenn es zurück kommt von der server 'data':

$("body").data( "userData", data);

In meinem onclick für das printer-friendly page-Taste rufe ich das JSON-Objekt:

var userData = $("body").data("userData");

So ist das machbar? Ist es so Weise, um ein neues Fenster öffnen, dann einfügen/anfügen von Daten an ein bestimmtes element drin? Oder...vielleicht einen anderen Weg habe ich noch nicht einmal berücksichtigt.

Vielen Dank im Voraus für jede Hilfe, obwohl ich auch sicher sein, zu überprüfen-markieren Sie die Antwort, wenn es einmal gepostet.

InformationsquelleAutor Kevin Dustie | 2013-08-20
Schreibe einen Kommentar