10

重新加载页面时是否可以保留我的(全局)变量?如果是,如何?

谢谢你的帮助。此致。

4

6 回答 6

9

试试这个无 cookie 的 javascript 函数

它基本上将您的数据存储在window.name属性中,当您重新加载页面或转到另一个站点时,该属性不会清除该值。

于 2011-04-08T02:25:37.190 回答
4

您可以通过某些基于 WebKit 的浏览器提供的window.localStorage, window.sessionStorage(专有的 Mozilla 扩展)或数据库抽象(window.openDatabase请参阅MDC上的这篇文章,以获得对存储接口的一个很好的概述,以及这篇关于其数据库介绍的 WebKit 文章。

于 2009-09-02T22:11:25.663 回答
3

以同样的方式,您可以将字符串值存储在哈希键中。

使用属性:

window.location.hash = 'flight/105';

然后在刷新页面时初始化你的变量。

于 2009-09-04T00:07:44.990 回答
2

当浏览器离开您的页面时,JavaScript 环境将被重置。但是,您可以注册一个 onUnload 处理程序来将您的数组序列化为一个 cookie,然后在每次加载页面时检查它并取消序列化它(如果存在)。

于 2009-09-02T22:07:02.133 回答
1

您的浏览器是否有重置按钮,或者您的意思是重新加载按钮?

当页面加载时,一切都是新鲜的。任何前一页都没有留下任何东西。唯一可以存储在加载页面后幸存下来的任何内容的地方是 cookie。

请注意,您可以放入 cookie 中的数据量限制为每个站点几千字节。确切的限制因浏览器而异,但您不能指望能够在 cookie 中放入超过一千字节或两千字节的数据。

于 2009-09-02T22:10:02.767 回答
0

你在说饼干吗?如果是这样,您可能想查看这个开源模块

这将很容易让您存储 cookie,即数据,即使在浏览器重新加载点击之后也是如此。这使得它变得非常容易,这就是我使用的。

var cookie = new HTTP.Cookies();
cookie.write('mydata', 'myvalue', '+1y');

//later on you can get that data EVEN AFTER a reload
var x = cookie.read('mydata');

您可能不应该尝试从头开始实现 cookie,因为它非常痛苦,并且您必须跨 Web 浏览器进行大量测试,例如确保 Internet Explorer 正常工作。

于 2009-09-03T01:55:57.617 回答