按下浏览器重新加载按钮时防止丢失变量

时间:2009-09-02 22:00:32

标签: javascript global-variables reload

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

感谢您的帮助。 最好的祝福。

6 个答案:

答案 0 :(得分:9)

试试这个cookie-less javascript function

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

答案 1 :(得分:4)

您可以通过某些基于WebKit的浏览器提供的window.localStoragewindow.sessionStorage(专有Mozilla扩展)或数据库抽象(window.openDatabase)等内容来跨页面重新加载来保存数据。有关存储接口和this article on MDC的详细信息,请参阅this WebKit article

答案 2 :(得分:3)

在相同的样式中,您可以在散列键中存储字符串值。

使用属性:

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

然后在刷新页面时,您会初始化变量。

答案 3 :(得分:2)

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

答案 4 :(得分:1)

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

当页面加载时,所有内容都是新加载的。任何上一页都没有任何内容。存放任何能够在加载页面时存活的东西的唯一地方是cookie。

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

答案 5 :(得分:0)

你在谈论Cookies吗?如果是这样,您可能需要查看this open-source module

即使在浏览器重新加载点击后,这也可以轻松地存储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正常运行。