保持前一个jquery全局变量的值不变,即使在加载之后也是如此
keeping value of previous jquery global variable intact, even after onload
可能重复:
当导航到另一个页面(也使用相同的js文件(时,Javascript全局变量不会持久存在
我有一个脚本
<script>
var pn=0;
function set()
{
pn=parseInt(pn)+1;
}
</script>
在第一次执行set
之后,pn
将为1。
页面重新加载后,pn
保留其值1
,因此在下一次执行set
时,它将递增到2
。
如何在重新加载页面时保留全局变量?
您可以通过jquery cookie将pn的值保存到cookie中。设置cookie:
$.cookie("pn", pn);
从cookie中获取价值:
$.cookie("pn");
简而言之,你做不到。没有办法在页面重新加载时持久化客户端变量。
我建议使用
jQuery cookie插件(cookie(
或者如果您的浏览器支持HTML5:
HTML5网络存储(本地/会话存储(
您应该使用cookie,下面是如何实现它的示例:
var pn = 0;
function increment() {
pn = parseInt(pn, 10) + 1;
setCookie('pn', pn, 200);
console.log(pn);
}
function setCookie(c_name,value,exdays) {
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name) {
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++) {
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^'s+|'s+$/g,"");
if (x==c_name) {
return unescape(y);
}
}
}
(function () {
pn = getCookie('pn') || 0;
}());
以下是一个示例:http://jsbin.com/ucitul/3
您应该将值存储在cookie、querystring或hashfragment中,然后在页面加载时获取值。
我建议使用jquery cookie插件。它相当简单,可以解决您的问题
相关文章:
- 在chrome.tabs.onCreated之后加载HTML页面
- 为什么元素的宽度在页面加载之后和那一刻之后不同
- 在重新加载之后检测窗口的存在
- 如何让C#代码在页面加载时运行的jquery脚本之后运行
- 在第一页加载时隐藏字段,而不是在php发布之后
- angularjs-ui路由器父状态,参数加载在子状态之后
- 在Ajax(过滤器)加载之后加载jQuery脚本
- 地图,rails 4.2,javascript,鼠标悬停,只工作一次(或两次).然后在重新加载之后
- 保持 JavaScript 在浏览器控制台中运行,即使在新的页面加载之后也是如此
- Boostrap远程模式:将动画延迟到加载之后
- 将img加载推迟到页面加载之后
- 在SVG加载之后修改它
- Angular.js控制器在视图加载之后加载
- 在css加载之后、图片下载之前运行代码
- 在页面加载之后而不是在初始阶段删除可见绑定
- 调用函数一次,仅在JQuery创建的图像被加载之后
- 附加& # 39;onclick # 39;事件到SVG元素'在加载之后
- 在<a>标记在窗口加载之后()
- 如何将某些HTML的显示延迟到javascript加载之后
- 保持前一个jquery全局变量的值不变,即使在加载之后也是如此