Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止在按下浏览器重新加载按钮时丢失变量_Javascript_Global Variables_Reload - Fatal编程技术网

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

Javascript 防止在按下浏览器重新加载按钮时丢失变量,javascript,global-variables,reload,Javascript,Global Variables,Reload,重新加载页面时是否可以保留我的(全局)变量?如果是,如何进行 谢谢你的帮助。 致以最良好的祝愿 浏览器离开页面时,JavaScript环境将被重置。但是,您可以注册一个onUnload处理程序,将数组序列化为cookie,然后在每次加载页面时检查该处理程序并取消序列化(如果存在)。您的浏览器是否有重置按钮,或者您指的是重新加载按钮 当页面加载时,所有内容都是新加载的。上一页没有留下任何内容。只有在cookie中才能存储加载页面后仍然存在的内容 请注意,每个站点可以放入cookie中的数据量限制为

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

谢谢你的帮助。
致以最良好的祝愿

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

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

当页面加载时,所有内容都是新加载的。上一页没有留下任何内容。只有在cookie中才能存储加载页面后仍然存在的内容


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

您可以通过类似于
window.localStorage
window.sessionStorage
(专用Mozilla扩展)或数据库抽象的方式跨页面重新加载来持久化数据(
window.openDatabase
)由一些基于WebKit的浏览器提供。有关存储接口及其数据库简介的详细概述,请参阅。

您是在谈论Cookies吗?如果是这样,您可能想回顾一下

这将很容易让你存储cookies,即数据,甚至在浏览器重新加载点击后。这使它非常容易,这就是我所使用的

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正常工作。

使用相同的样式,您可以在哈希键中存储字符串值

使用属性:

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

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

试试这个


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

很抱歉,我说的太多了,但您的术语似乎不标准。对于“全局数组变量”,有什么可以防止的此外,什么是浏览器重置按钮?您是否有一些代码来说明您所指的内容?对不起…您是对的,我的意思是“防止初始化值或重置”.换句话说,我想保护我的全局值并在下次操作中使用它。谢谢。致以最良好的问候。很抱歉我的英语不好。我希望现在一切都清楚了。嗨,亚当,当按下浏览器重置按钮时发生了什么事?我尝试在不使用cookie的情况下解决此问题。是的,重新加载按钮…感谢太多的Guffa…致以最良好的问候。谢谢太多的Kangax…非常有趣。哪些浏览器是基于Webkit的?ABrowse,Android网络浏览器,Arora,Google Chrome,Epiphany,iCab,Iris浏览器,Midori,OmniWeb,rekonq,Safari,Shiira,Skipstone,MorphOS的Sputnik,SRWare Iron,不锈钢,Sunrise,TeaShark,S60的网络浏览器,WebOS:)(见)我喜欢这个。然而,我想知道它是否符合正确的软件设计,还是会被归类为黑客?