Übergeben eines großen JSON-Objekts an eine andere Seite in einem neuen Fenster.

Ich entschuldige mich im Voraus, wenn dies bereits beantwortet wurde. Ich habe jetzt ein paar Stunden lang gegoogelt und immer noch nichts gefunden, was meine genaue Frage zu beantworten scheint.

Im Wesentlichen habe ich eine sehr komplexe / stark gestaltete Ansicht, in der benutzerspezifische Daten angezeigt werden, die aus der Datenbank abgerufen wurden. Ich habe die Daten als JSON-Objekt erfasst und sie mit .data () an den Hauptteil meiner Seite angehängt. Ich habe eine Schaltfläche hinzugefügt, die das JSON-Objekt abruft und meine druckerfreundliche Seite in einem neuen Fenster öffnet. Ich möchte in diesem neuen Fenster auf das benutzerspezifische JSON-Objekt zugreifen und es bearbeiten können. (Dies wäre alles auf der gleichen Domain.)

Die meisten der Lösungen, die ich gesehen habe, scheinen sich auf das Öffnen eines neuen, leeren Fensters zu konzentrieren. Ich will das nicht machen. Ich habe ein Layout für die Seite programmiert und plane Javascript / CSS zu haben, das auch läuft. Ich habe Lösungen gesehen, die das Öffnen eines neuen Fensters und die anschließende Verwendung von document.write beinhalten. Das wäre großartig, wenn es eine Möglichkeit gäbe, ein bestimmtes Element auf der neuen Seite zu markieren. Ich habe zum Beispiel versucht:

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

Dadurch wird das JSON-Objekt zwar auf die neue Seite verschoben, alles andere im Layout wird jedoch vollständig gelöscht.

Ich habe auch Lösungen gesehen, die vorschlagen, das Objekt zu stringifizieren und dann mit Base64 zu codieren. Ich bin jedoch besorgt über Einschränkungen der URL-Länge, da möglicherweise viele Daten auf dieser Seite erfasst werden, bevor Sie auf die Schaltfläche klicken.

Ich habe auch Lösungen gesehen, die die Verwendung von lokalem HTML5-Speicher vorschlagen. Was ich wohl tun werde, wenn es keine bessere Lösung gibt. HTML5 wirft jedoch Probleme mit der Browserkompatibilität auf und ich würde es vorziehen, diese nach Möglichkeit zu vermeiden.

Hier ist ein Beispielcode:

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."
}
}

Das erfasse ich, wenn es als 'Daten' vom Server zurückkommt:

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

Bei meinem Klick auf die druckerfreundliche Schaltfläche rufe ich das JSON-Objekt ab:

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

Also ist das machbar? Gibt es eine Möglichkeit, ein neues Fenster zu öffnen und dann Daten in ein bestimmtes Element einzufügen / an dieses anzuhängen? Oder ... vielleicht auf eine andere Weise, über die ich nicht einmal nachgedacht habe.

Vielen Dank im Voraus für jede Hilfe, auch wenn ich die Antwort nach dem Posten mit einem Häkchen versehen werde.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage