Passando um objeto JSON grande para outra página em uma nova janela.

Peço desculpas antecipadamente se isso já foi respondido. Já pesquisei por algumas horas e ainda não encontrei nada que pareça responder exatamente a minha pergunta.

Essencialmente, eu tenho uma visão muito complexa / altamente estilizada que exibe dados específicos do usuário extraídos do banco de dados. Capturei os dados como um objeto JSON, colei no corpo da minha página usando .data (). Eu adicionei um botão que recupera o objeto JSON e abre minha página de impressão amigável em uma nova janela. Eu quero ser capaz de acessar / manipular o objeto JSON específico do usuário a partir desta nova janela. (Isso tudo seria no mesmo domínio.)

A maioria das soluções que vi parecem estar centradas na abertura de uma nova janela em branco. Eu não quero fazer isso. Eu codifiquei um layout para a página e planejo ter javascript / css que também seja executado. Eu vi soluções que envolvem a abertura de uma nova janela e, em seguida, usando document.write, o que seria ótimo, se houvesse uma maneira de direcionar um elemento específico na nova página. Eu tentei, por exemplo:

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

O que coloca o objeto JSON na nova página, mas limpa completamente tudo o que eu tinha no layout.

Eu também vi soluções que sugerem stringing e, em seguida, Base64 codificando o objeto. Mas estou preocupado com as restrições de tamanho de URL, já que elas poderiam estar reunindo muitos dados nessa página antes de clicar no botão.

Também vi soluções que sugerem o uso de armazenamento local em HTML5. O que eu suponho que farei, se não houver uma solução melhor. No entanto, o HTML5 aumenta os problemas de compatibilidade do navegador e eu preferiria evitá-los, se possível.

Aqui está um código de exemplo:

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

Eu capturo isso quando ele volta do servidor como 'data':

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

No meu onclick para o botão de página da impressora, recupero o objeto JSON:

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

Então, isso é factível? Existe uma maneira de abrir uma nova janela e, em seguida, inserir / anexar dados a um elemento específico dentro dela? Ou ... talvez de outra maneira que eu nem considerei.

Agradecemos antecipadamente por qualquer ajuda, embora eu também tenha certeza de marcar a resposta assim que ela for postada.

questionAnswers(1)

yourAnswerToTheQuestion