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