将大型JSON对象传递到新窗口中的另一个页面。

如果这个问题已经得到解答,我很抱歉。 我已经搜索了几个小时,而且我还没有找到任何似乎回答我的确切问题的东西。

从本质上讲,我有一个非常复杂/高度风格的视图,它显示从数据库中提取的用户特定数据。 我已经将数据捕获为JSON对象,并使用.data()将其附加到我的页面中。 我添加了一个检索JSON对象并在新窗口中打开我的打印页面的按钮。 我希望能够在这个新窗口中访问/操作用户特定的JSON对象。 (这将全部在同一个域上。)

我见过的大多数解决方案似乎都围绕着打开一个新的空白窗口而展开。 我不想这样做。 我已经为页面编写了一个布局,并且我计划让JavaScript / css运行。 我看到了一些解决方案,包括打开一个新窗口,然后使用document.write,如果有一种方法可以在新页面上定位某个特定元素,这将非常棒。 我试过了,例如:

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

它将JSON对象放在新页面上,但完全擦除了我在布局中的其他所有内容。

我还看到了一些解决方案,建议进行字符串化,然后使用Base64编码该对象。 但是我担心URL长度限制,因为他们可能会在点击按钮之前收集大量的数据。

我也看到了使用HTML5本地存储的解决方案。 如果没有更好的解决方案,我想我会这样做。 但HTML5引发浏览器兼容性问题,如果可能的话,我宁愿避免它们。

以下是一些示例代码:

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

当它从服务器返回为'data'时,我捕获它:

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

在我的打印友好页面按钮的onclick中,我检索了JSON对象:

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

那么这是可行的吗? 有没有办法打开一个新窗口,然后插入/附加数据到它里面的特定元素? 或者......也许还有一些我没有考虑过的方式。

提前感谢您提供任何帮助,但我一定会在发布后对答案进行检查。


你可以将json保存在父窗口的全局变量中,并在你的弹出窗口代码中引用它

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

链接地址: http://www.djcxy.com/p/73671.html

上一篇: Passing large JSON object to another page in a new window.

下一篇: C++11 user