我想在每次页面被引用时增加一个cookie值,即使页面是从缓存中加载的。什么是“最好”或最简洁的方式来实现这一点?什么是使用JavaScript获取和设置单个cookie值的“最佳”方式
15
A
回答
26
被盗从http://www.quirksmode.org/js/cookies.html#script
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toUTCString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
:
var oldCount = parseInt(readCookie('hitCount'), 10) || 0;
createCookie('hitCount', oldCount + 1, 7);
正如注释中所指出的那样,您应该将Cookie转换为int存储并作为字符串返回。使用foo++
或++foo
实际上会投给你,但它的安全知道你正在使用什么:
var x = "5"; // x = "5" (string)
x += 1; // x = "51" (string!)
x += 5; // x = "515" (string!)
++x; // x = 516 (number)
7
大多数的旧Cookie处理功能我已经看到了使用简单的字符串操作用于存储检索值,比如this例如,你可以使用其他的库,例如cookie-js,小(< 100线)实用程序,用于饼干访问。
我个人使用jQuery我的项目,我用的是jQuery Cookie Plugin,这是非常简单的使用方法:用它
var cookieName = "increment";
if ($.cookie(cookieName) == null){
$.cookie(cookieName, 1, { expires: 10 });
}else{
var newValue = Number($.cookie(cookieName)) + 1;
$.cookie(cookieName, newValue, { expires: 10 });
}
0
最好的办法就是始终是最简单的:
function getCookie(name) {
return (name = (document.cookie + ';').match(new RegExp(name + '=.*;'))) && name[0].split(/=|;/)[1];
}
// the default lifetime is 365 days
function setCookie(name, value, days) {
var e = new Date;
e.setDate(e.getDate() + (days || 365));
document.cookie = name + "=" + value + ';expires=' + e.toUTCString() + ';path=/;domain=.' + document.domain;
}
这些功能所期望的价值是一个简单的字符串,但你可以随时JSON.stringify它,如果你想或可能做别的事情...
相关问题
- 1. 什么是当前设置第三方cookie的最佳方式?
- 2. 使用cocos2d设置菜单的最佳方式是什么?
- 3. 在JavaScript中按名称获取cookie的最佳方式是什么?
- 4. 设置表单以获取临时变量的最佳方式是什么?
- 5. 从数据集中获取单个值的最佳方式是什么?
- 6. Heroku Python:设置和获取Cookie的正确方法是什么?
- 7. 什么是使用PHP获取URL目录的最佳方式?
- 8. 在strings.xml中获取attrubute值的最佳方式是什么?
- 9. 从detailViewController获取布尔值的最佳方式是什么?
- 10. 从jqGrid单元获取数据的最佳方式是什么?
- 11. 设置和测试Lambda API的最佳方式是什么?
- 12. 使用Javascript/jQuery获取给定URL参数值的最佳方法是什么?
- 13. 什么是使用Java反射获取属性值的最佳方式
- 14. 什么是使用Selenium PageObject设计模式的最佳方式
- 15. 设置java应用程序的最佳方式是什么?
- 16. 在PHP Cookie中存储表单值的最佳方式是什么?
- 17. 获取当前用户的SID的最佳方式是什么?
- 18. 厨师从用户获取UID的最佳方式是什么?
- 19. 从常规集中提取单个值的最佳方式是什么?
- 20. 获取用lxml设置的单选按钮的值的最佳方法是什么?
- 21. Rails单表继承 - 显式设置类型的最佳方式是什么?
- 22. 在WPF中为样式化菜单设置MenuItem的最佳方式是什么?
- 23. 获取用户登录的价值的最佳方式是什么?
- 24. 在Android设备上获取用户货币的最佳方式是什么?
- 25. 阅读/设置IE选项的最佳方式是什么?
- 26. 设置jQuery超时间隔的最佳方式是什么?
- 27. 什么是设置未知代码限制的最佳方式?
- 28. 处理设置更改(iPhone/iPad)的最佳方式是什么?
- 29. 在QuoteRequest消息中设置SenderSubID的最佳方式是什么?
- 30. 什么是在Android中设置通知的最佳方式
readCookie返回一个子字符串,你应该把它作为一个数字时增加1,否则你将有,1,11,111,1111 ... – CMS 2008-11-04 06:58:58