Przekazywanie dużego obiektu JSON na inną stronę w nowym oknie.

Z góry przepraszam, jeśli odpowiedź została już udzielona. Już od kilku godzin korzystam z Google i nadal nie znalazłem niczego, co wydaje się odpowiadać na moje dokładne pytanie.

Zasadniczo mam bardzo złożony / stylizowany widok, który wyświetla dane specyficzne dla użytkownika pobrane z bazy danych. Przechwyciłem dane jako obiekt JSON, dołączając go do treści strony za pomocą .data (). Dodałem przycisk, który pobiera obiekt JSON i otwiera stronę przyjazną dla drukarki w nowym oknie. Chcę mieć dostęp do obiektu JSON specyficznego dla użytkownika / manipulować nim z tego nowego okna. (To wszystko będzie w tej samej domenie.)

Większość rozwiązań, które widziałem, wydaje się koncentrować na otwarciu nowego, pustego okna. Nie chcę tego robić. Zakodowałem układ strony i planuję mieć javascript / css, który również działa. Widziałem rozwiązania, które polegają na otwarciu nowego okna, a następnie użyciu document.write, co byłoby wspaniałe, gdyby istniał sposób na skierowanie określonego elementu na nową stronę. Próbowałem, na przykład:

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

Który umieszcza obiekt JSON na nowej stronie, ale całkowicie wymazuje wszystko, co miałem w układzie.

Widziałem też rozwiązania sugerujące zawężanie, a następnie kodowanie obiektu Base64. Ale obawiam się ograniczeń długości adresów URL, ponieważ potencjalnie mogą gromadzić wiele danych na tej stronie przed kliknięciem przycisku.

Widziałem także rozwiązania, które sugerują użycie lokalnej pamięci HTML5. Myślę, że zrobię to, jeśli nie ma lepszego rozwiązania. Jednak HTML5 podnosi problemy ze zgodnością przeglądarki i wolę unikać ich, jeśli to możliwe.

Oto przykładowy kod:

Obiekt JSON:

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

Przechwytuję to, gdy wraca z serwera jako „dane”:

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

W moim kliknięciu przycisku strony przyjaznej dla drukarki pobieram obiekt JSON:

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

Czy to możliwe? Czy istnieje sposób na otwarcie nowego okna, a następnie wstawienie / dołączenie danych do określonego elementu w nim zawartego? Albo ... może w jakiś inny sposób nawet nie rozważałem.

Z góry dziękuję za wszelką pomoc, chociaż na pewno zaznaczę odpowiedź po jej opublikowaniu.

questionAnswers(1)

yourAnswerToTheQuestion