2013-08-20 15 views
7

Bu yanıt zaten yapılmışsa önceden özür dilerim. Şimdi birkaç saatliğine uğraştım ve hala kesin soruma cevap verecek gibi bir şey bulamadım.Büyük bir JSON nesnesini yeni bir pencerede başka bir sayfaya geçirme.

Esasen, veritabanından çekilen kullanıcıya özgü verileri görüntüleyen çok karmaşık/son derece stilli bir görünümüm var. Verileri bir JSON nesnesi olarak yakaladım, .data() öğesini kullanarak sayfamın gövdesine ekledim. JSON nesnesini alan ve yazıcı dostu sayfamı yeni bir pencerede açan bir düğme ekledim. Kullanıcıya özel JSON nesnesine bu yeni pencereden erişebilmek/bunları işlemek istiyorum. (Bu, hepsi aynı etki alanında olacaktır.)

Gördüğüm çözümlerin çoğu yeni ve boş bir pencere açmak üzere ortalanmış gibi görünüyor. Bunu yapmak istemiyorum. Sayfa için bir düzen kodladım ve aynı zamanda çalıştığı javascript/css yapmayı planlıyorum. Yeni bir pencere açmayı ve sonra yeni bir sayfada belirli bir öğeyi hedeflemenin bir yolu olsaydı harika olabilecek document.write uygulamasını içeren çözümler gördüm. Ben örneğin, denedim: tamamen yeni sayfada JSON nesnesi koymak, ama yok

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

ben düzeninde vardı herşeyi siliyor.

Ayrıca, nesneyi kodlayarak Base64 kodlamasını öneren çözümler gördüm. Ancak, bu sayfaya tıklamadan önce bu sayfada çok fazla veri toplayabilecekleri dikkate alındığında, URL uzunluğu kısıtlamalarıyla ilgili endişelerim var.

Ayrıca, HTML5 yerel depolama alanını kullanmanızı öneren çözümler gördüm. Daha iyi bir çözüm yoksa, yapacağımı varsayalım. Ancak HTML5 tarayıcı uyumluluk sorunlarını artırıyor ve mümkünse bunlardan kaçınmayı tercih ediyorum.

JSON nesnesi: Burada

bazı örnek kod benim onClick

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

:

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

ben yakalamak bu 'veriler' olarak sunucudan geri geldiğinde o Yazıcı dostu sayfa düğmesi, JSON nesnesini alıyorum:

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

Yani bu yapılabilir? Yeni bir pencere açmanın ve sonra da içindeki belirli bir öğeye veri ekleme/ekleme yolu var mı? Ya da belki başka bir şekilde düşünmedim.

Herhangi bir yardım için şimdiden teşekkür ederiz, yine de, bir kez gönderildiğinde, cevabı işaretlediğinizden emin olacağım.

cevap

4

Üst pencerede genel değişken json kaydetmek ve pop-up pencere kodu

https://stackoverflow.com/a/87737/1755374

+0

Hah onu başvurabilir, sen en iyisin. Bu sayfa boyunca tökezleyen herkes için: var userData = window.opener. $ ("Body"). Data ("userData"); Sayfanın javascript dosyasında yeni pencerede açıldı. Bu başarıyla JSON nesnesini aldı. –

İlgili konular