如何将javascript对象从一个页面传递给另一个页面

Dip*_*pen 8 javascript jquery

我想将javascript对象从一个页面传递到另一个页面,这样任何人都可以告诉我该怎么做?

使用jQuery可以这样做吗?

Rob*_*nik 15

很少的方式

  1. 服务器端回发

    在页面上有一个POST表单,并将序列化对象保存在隐藏的输入中,然后将其发布到另一页.您将能够在服务器上处理该数据,并且很可能以某种方式将其放回到页面中.无论是javascript对象还是其他任何东西.

  2. 客户端URL检查

    通过将序列化对象附加到URL,向其他页面发出GET请求:

    http://www.app.com/otherpage.xyz?MyObject=SerializedData

    于是页面可以很容易地分析它的URL和使用Javascript反序列化的数据.

  3. 什么是window.name=本地跨页面会话

    这是一种特殊的技术,也用于作为字典公开的特殊javascript库window.name,因此您可以将许多不同的对象保存到其中并将其用作本地跨页面会话.它有一些可能会影响您的大小限制,但请检查链接页面并测试您的浏览器.

  4. HTML5本地存储

    HTML5具有本地存储的功能,您可以将其用于这些目的.但是使用它很大程度上取决于您的浏览器要求 现代浏览器支持它,即使在重新启动浏览器或计算机之后也可以恢复数据......

  5. 饼干

    您可以随时使用Cookie,但可能会遇到其限制.目前,cookie并不是最佳选择,即使它们能够保存比当前窗口会话更长的数据.

Javascript对象序列化

在某些大写情况下,您当然必须在客户端使用某种(de)序列化器.反序列化器很容易找到(jQuery已经包含了一个很棒的函数$.getJSON()),并且很可能是你当前的javascript库的一部分(甚至没有提到eval()).

但是对于JSON字符串序列化的对象,我建议使用John Resig推荐的json2.js库.该库使用浏览器内实现的JSON(反)序列化功能(如果存在)或使用它自己的实现(如果它们不存在).因此推荐.

  • 我喜欢特殊的技术部分,让程序员听起来像巫师或忍者 (2认同)

Guf*_*ffa 5

仅当页面同时存在,并且一个页面从另一个页面打开,以便您可以引用其他页面窗口对象时,才有可能。

如果您从一页导航到另一页,则它们不会同时存在,因此您无法像这样进行交流。您必须将对象序列化为可在请求中发送的字符串,例如,在查询字符串中发送JSON。

有多种持久数据的方式,例如查询字符串,发布数据,cookie,窗口名称或HTML5本地存储,但是所有这些方法只能持久化字符串值,而不能持久化Javascript对象。


fre*_*ish 1

我相信将 javascript 对象从一个页面传递到另一个页面的唯一方法是将其序列化为字符串并在 url 中传递。例如,如果你有对象

var temp = { id: 1, value: 'test' }
Run Code Online (Sandbox Code Playgroud)

您可能想使用JSON-js来序列化它并将其传递给例如http://mysite.com/?data=serialization。然后,在加载页面后,您需要通过例如 来反序列化它$.parseJSON()