【发布时间】:2012-04-17 06:11:45
【问题描述】:
我正在寻找一种在 javascript 中在本地主机上创建/检测 cookie 的方法。基本上,如果会话中存在具有指定名称“foo”的 cookie,则什么也不做。如果不存在 cookie,则创建一个名为 foo 的新 cookie 并使用 guid 填充它。我如何在 javascript 中做到这一点?
谢谢
【问题讨论】:
标签: javascript cookies localhost
我正在寻找一种在 javascript 中在本地主机上创建/检测 cookie 的方法。基本上,如果会话中存在具有指定名称“foo”的 cookie,则什么也不做。如果不存在 cookie,则创建一个名为 foo 的新 cookie 并使用 guid 填充它。我如何在 javascript 中做到这一点?
谢谢
【问题讨论】:
标签: javascript cookies localhost
从 javascript 读取 cookie 需要一些字符串解析。有许多优秀的库可以让这项任务变得更容易,但您可以使用类似于以下的代码来获取和设置 cookie 值
<script type="text/javascript">
function GetCookieValue(key) {
var value = null;
var cookieArray = document.cookie.split(';');
for (var i = 0; i < cookieArray.length; i++) {
var keyValuePair = cookieArray[i].split("=");
if (keyValuePair[0] == key) {
value = keyValuePair[1];
break;
}
}
return value;
}
function SetCookieValue(key, value) {
document.cookie = key + "=" + value;
}
</script>
在 javascript 中生成 Guid 有点困难。 This guy 有一个不错的库,您可以将其包含在内,它会生成良好的 GUID。我知道还有一些 jQuery 插件是出于类似目的而创建的,但我没有使用它们。
如果您包含以下脚本,以及上面的功能,它应该可以满足您的需求。
<script type="text/javascript" src="http://www.broofa.com/Tools/Math.uuid.js"></script>
<script type="text/javascript">
var guid = GetCookieValue("myGuid");
if (guid == null)
SetCookieValue("myGuid", Math.uuid());
alert(GetCookieValue("myGuid"));
</script>
【讨论】: