0
我正在寻找一种方法来在javascript中的本地主机上创建/检测cookie。基本上,如果会话中存在具有指定名称“foo”的cookie,请不要执行任何操作。如果不存在cookie,则创建一个名为foo的新cookie,并使用guid填充它。我怎么能在JavaScript中做到这一点?在本地主机上创建cookie
谢谢
我正在寻找一种方法来在javascript中的本地主机上创建/检测cookie。基本上,如果会话中存在具有指定名称“foo”的cookie,请不要执行任何操作。如果不存在cookie,则创建一个名为foo的新cookie,并使用guid填充它。我怎么能在JavaScript中做到这一点?在本地主机上创建cookie
谢谢
从JavaScript读取cookies需要一点字符串解析。有一些好的库,使这一工作更容易,但你可以使用类似的代码下面的获取和设置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>
document.cookie的问题在于我的本地主页上没有设置cookie。相反,我正在调用一个外部域,它设置了我想要检查的cookie。所以我实际上正在调用一个域名,比如google.com,它在其自己的域名下设置了它的cookie。当我查看ff中的cookie列表时,我可以看到这一点。该Cookie设置在google.com(例如)下。我想检查是否存在 – 2012-04-03 15:52:19
Javascript不允许你从其他域访问cookie。这是一个安全风险。 – dave 2012-04-03 16:03:10