2013-04-25 2 views
0

document.setbackground.bgcolor.value은 16 진수 값 (예 : 검정색의 경우 "000000")을 인증하고 저장합니다.이 스크립트는 값을 업데이트하는 라이브 양식에서 새 값이 선택되면 페이지의 배경색을 변경하기도합니다영구 쿠키

제 코드가 브라우저에 쿠키를 저장하는 동안 브라우저를 닫고 다시 열 때 쿠키가 작동하지 않습니다. 배경이 쿠키에 저장된 내용으로 시작되도록하고 싶습니다. 내 코드 또는 브라우저 설정과 함께?

function setBackground() { 
    if (document.setbackground.bgcolor.value != "none"){ 
      document.body.bgColor = "#" + document.setbackground.bgcolor.value; 
      document.cookie = "bgColor=" + document.setbackground.bgcolor.value + 
       ";expires=Wednesday, 02-Mar-2020 12:00:00 GMT;"; 
    } 
} 

이 코드는 setPrefe rence.js 파일 :

<html> 
<head> 
    <script src="setPreference.js"></script> 
</head> 
<body bgcolor="#9999CC"> 
    <center> 
    <form name="setbackground"> 
    Change background color? 
    <select name="bgcolor" onchange="setBackground();" size="1"> 
     <option value="none">Select color</option> 
     <option value="9999CC">Lavender</option> 
     <option value="999966">Light Brown</option> 
     <option value="66FFCC">Light Green</option> 
     <option value="FFFFFF">White</option>  
    </select> 
    </center> 
    </form> 
</body> 
</html> 
+0

을 어디에 당신이 그것을로드? – Zaffy

+0

HTML을 표시하도록 업데이트했습니다. –

답변

0

사용자가이 값으로 bgColor가를 설정하고 쿠키를 만듭니다 select에서 항목을 선택합니다.

또한 쿠키를로드하고 bgColor를 설정해야합니다.

당신이 (당신의 js에 추가)이 같은 간단한 일을 사용할 수 있습니다

// document.cookie - name1=value1; name2=value2; name3=value3 

function GetCookie(what) 
{ 
    var cookies = document.cookie.split(/; ?/g); // now we have array of name=value pairs 
    for(var i in cookies) 
    { 
     var pair = cookies.split("=", 1); 
     var name = decodeURIComponent(pair[0]); 
     var value = decodeURIComponent(pair[1]); 

     if (name == what) 
      return value; 
    } 
} 

window.onload = function() 
{ 
    var color = GetCookie("bgColor"); // note that in the cookie can be ANY value as it comes from the user. So some condition to validate input wouldnt be bad idea 
    document.setbackground.bgcolor.value = color; 
    setBackground(); 
} 
관련 문제