2011-03-22 71 views
1

我有两个HTML页面。输入少量输入后,用户将从第一页重定向到第二页。在将用户重定向到第二个HTML页面(使用window.location =“new HTML URL”)之前,我使用document.cookie DOM API在Cookie中坚持少量用户输入。两个HTML页面之间的HTTP cookie

当我在第二个HTML页面中时,我无法从此cookie检索值。我认为,因为文档对象会在新的HTML页面中发生变化,所以我的Cookie值变得无法访问。

有人可以告诉我:如何从一个JavaScript持久保存的cookie的值在其他HTML页面的一个HTML页面中检索,即Cookie由HTML A的javascript在HTML B的javascript中写入?

我没有任何服务器端代码,所以我无法利用服务器端逻辑。此外,我不应该通过URL中的值。所以我需要一个解决方案在纯JavaScript和HTML。

如果有人有更好的解决方案,请让我知道。由于

+0

你不能使用任何类似ASP,PHP或JSP的东西?那些将解决这个问题。期。 – 2011-03-22 13:36:02

+0

只要域和路径没有变化,而且您没有设置过期日期太短(或负值),则在一个页面上设置和通过另一个页面读取时应该没有问题。请给我们一些关于这两个页面的信息,例如域和路径,以及一些用于读取/写入cookie的代码。自2005年以来,我一直维护着一个开源的JavaScript cookies库,所以我应该可以帮助您获得体面的信息。 – JAAulde 2011-03-22 13:38:15

+2

@Tanner Ottinger - “那些将解决问题的时期”并没有多大意义。无论代码来源/来源如何,相同的限制都适用于Cookie。此外,您没有解释这些服务器平台中的一个如何解决问题。 – JAAulde 2011-03-22 13:39:44

回答

3

尝试使用localStorage的,而不是饼干,

// set your values in the first page 
localStorage.setItem('itemKey', 'values'); 

// on the second page, retrieve them 
var values = localStorage.getItem('itemKey'); 

可以使用jStorage插件跨浏览器的行为。

同时参阅本question用于存储对象而不是字符串

+0

我假设localStorage是一个HTML5解决方案。我对么?我们的标准浏览器不支持HTML5。这种解决方案在这种情况下也能工作吗? – user131476 2011-03-22 14:05:49

+0

这个概念与非HTML5浏览器(例如IE)一样,但是具有不同的实现方式,您仍然可以使用jStorage插件作为接口,并且它会为您处理存储,如果您引用其网站,他们提到IE7和IE6可以存储值高达128kb,如果有帮助 – 2011-03-22 14:10:08

+0

我试过jstorage。我使用此链接http://www.jstorage.info/test?type=prototype向jstorage添加了一个键值对。我用一个按钮创建了另一个HTML页面,并附加了一个javascript函数,该函数将返回基于该密钥的值。这是我的JavaScript函数的内容。 var value = $ .jStorage.get(“test”); alert(value);但警报框显示为空。难道我做错了什么?我在我的HTML页面中使用jstorage.js和prototype.js。 – user131476 2011-03-23 10:02:17

1

JAAulde是与他的回答一点。

对于OP想要做类似PHP的事情会很好,在这种情况下,我不会为了在两个页面之间传递数据而打扰cookie,这很愚蠢。但是,如果需要真正的持久性,并且数据要求很简单,即使使用PHP等语言,Cookie也是一种方法。

这些都是相当严格的约束,这是一个类项目吗?也就是说,没有任何其他方法可以做你正在尝试的东西,除了一个丑陋而且非常不安全的DOM破解之外。

相关问题