这是我第一次使用JavaScript处理cookie,下面的脚本在我的本地PC上工作正常但是当我在这里上传时:example它失败了。
$(document).ready(function(){
// Get Cookie
var getCookie = document.cookie;
if(getCookie == "stylesheet=blue")
{
$("[rel=stylesheet]").attr({href : "blue.css"});
}
else if(getCookie == "stylesheet=main")
{
$("[rel=stylesheet]").attr({href : "main.css"});
}
// Set Stylsheet back to Main
$('#reset').click(function()
{
$("[rel=stylesheet]").attr({href : "main.css"});
var setCookie = document.cookie = "stylesheet=main";
});
// Set Stylsheet Blue
$('#blue').click(function()
{
$("[rel=stylesheet]").attr({href : "blue.css"});
var setCookie = document.cookie = "stylesheet=blue";
});
});
有什么想法吗?
答案 0 :(得分:1)
问题是,您使用的是谷歌分析,它也设置了自己的cookie。所以,在阅读document.cookie属性时,它永远不会有价值,例如。 “stylesheet = blue”,因为它将包含其他cookie的信息。呼叫
alert(document.cookie);
并自行检查值。
您应该使用函数来获取cookie值,例如
function getCookie(N){
if(N=(new RegExp(';\\s*'+N+'=([^;]*)')).exec(';'+document.cookie+';'))
return N[1]
}
答案 1 :(得分:1)
当你收回cookie时,它不仅仅是字符串“stylesheet = blue”,还包含其他信息。
对我来说,我回来的字符串看起来像这样:
"stylesheet=blue; __utma=168444603.22445052401845424.1242318397.1242318397.1242318397.1; __utmb=168444603.5.10.1242318397; __utmc=168444603; __utmz=168444603.1242318397.1.1.utmcsr=stackoverflow.com|utmccn=(referral)|utmcmd=referral|utmcct=/questions/864324/cookie-sets-on-localhost-but-not-on-live-server"
检查字符串是否包含“stylesheet = blue”而不是检查等值。
编辑:看看@Rafael说的话。我喜欢JQuery cookie插件
答案 2 :(得分:0)
您是否尝试过向Cookie添加过期日期以便设置它?
document.cookie = "stylesheet=blue; expires=Thu, 5 May 2011 20:47:11 UTC; path=/"
这是一个硬编码示例,但您可以根据需要设置日期时间。