javascript背景cookie

javascript背景cookie,javascript,cookies,Javascript,Cookies,我正在尝试编写两个函数来设置和获取保存用户喜爱的背景颜色的cookie: function set_background_cookie(){ if ( navigator.cookieEnabled ) { favColor = window.prompt( "insert your favorite color please : " , "") ; document.body.style.backgroundColor = favColor ; document.co

我正在尝试编写两个函数来设置和获取保存用户喜爱的背景颜色的cookie:

function set_background_cookie(){
if ( navigator.cookieEnabled )  {
    favColor = window.prompt( "insert your favorite color please : " , "") ;
    document.body.style.backgroundColor = favColor ;
    document.cookie = "favoriteColor=" + favColor + ";" + "expires=Sat, 25 Apr 2020 12:11:05 GMT" ;
    }
}

function get_background_cookie(){
var start , End , color ;
var CookiesArray = document.cookie.split(';') ;
start = CookiesArray[0].indexOf('=');
End = start + CookiesArray.length ;
color = CookiesArray[0].substring(start + 1 , End ) ;
document.body.style.backgroundColor = color ;
}
设置cookie非常完美,但我在获取它时遇到了问题 我的问题是什么

这是整个页面:

<!DOCTYPE html>

<html>

<head> 

<script> 

function get_background_cookie(){
var start , End , color ;
var CookiesArray = document.cookie.split(';') ;
start = CookiesArray[0].indexOf('=');
End = start + CookiesArray.length ;
color = CookiesArray[0].substring(start + 1 , End ) ;
document.body.style.backgroundColor = color ;
}

function set_background_cookie(){
if ( navigator.cookieEnabled )  {
    favColor = window.prompt( "insert your favorite color please : " , "") ;
    document.body.style.backgroundColor = favColor ;
    document.cookie = "favoriteColor=" + favColor + ";" + "expires=Sat, 25 Apr 2020 12:11:05 GMT" ;
    }
}

window.onload = function(){
set_background_cookie();
get_background_cookie();
}




</script>





</head>

<body>

</body>

</html>

函数get_background_cookie(){
变量开始、结束、颜色;
var CookiesArray=document.cookie.split(“;”);
start=CookiesArray[0].indexOf('=');
结束=开始+CookiesArray.length;
color=CookiesArray[0]。子字符串(开始+1,结束);
document.body.style.backgroundColor=颜色;
}
函数集\u背景\u cookie(){
如果(navigator.cookieEnabled){
favColor=window.prompt(“请插入您最喜欢的颜色:,”);
document.body.style.backgroundColor=favColor;
document.cookie=“favoriteColor=“+favColor+”;“+”expires=Sat,2020年4月25日12:11:05 GMT”;
}
}
window.onload=函数(){
设置_background_cookie();
获取_background_cookie();
}
试试:

而不是:

End = start + CookiesArray.length ;
您可能还应该检查cookie是否存在,而不是仅仅假设cookie存在。否则,如果用户禁用了cookie,则可能会出现JavaScript错误。像这样的事情应该可以做到:

function get_background_cookie() {
    if (!document.cookie || !document.cookie.length)
        return;
    var CookiesArray = document.cookie.split(';');
    var start = CookiesArray[0].indexOf('=');
    var End = start + CookiesArray[0].length;
    var color = CookiesArray[0].substring(start + 1 , End );
    document.body.style.backgroundColor = color;
}
function get_background_cookie() {
    if (!document.cookie || !document.cookie.length)
        return;
    var CookiesArray = document.cookie.split(';');
    var start = CookiesArray[0].indexOf('=');
    var End = start + CookiesArray[0].length;
    var color = CookiesArray[0].substring(start + 1 , End );
    document.body.style.backgroundColor = color;
}