자바 스크립트 BOM 쿠키의 사용

자바 스크립트 쿠키

쿠키는 사용자의 컴퓨터에 저장되는 작은 데이터 텍스트 파일입니다. 웹 서버가 브라우저에 페이지를 전송하면 연결이 닫힐, 서버는 모든 콘텐츠 사용자를 잊지 것입니다. : 쿠키 발명은 "어떻게 사용자 정보를 기억하는"의 문제를 해결하는
사용자가 그 / 그녀의 이름은 쿠키에 저장 될 수있다 페이지에 액세스 할 때입니다.
사용자가 페이지를 방문 다음 번에, 쿠키는 그 / 그녀의 이름을 "기억".
쿠키는 같은 키의 형태로 저장됩니다

username = John Doe

브라우저가 서버에서 페이지를 요청하면, 해당 페이지에 속한 쿠키는 요청에 추가됩니다. 이러한 방법으로, 서버는 사용자에 대한 정보를 "기억"하는 데 필요한 데이터를 얻을 수있다.
브라우저가 쿠키 지역의 지원 닫혀있는 경우, 다음 예는 유효하지 않습니다.

쿠키를 만들기 위해 자바 스크립트를 사용하여

자바 스크립트 document.cookie를 속성은 생성, 읽기 및 쿠키를 삭제할 수 있습니다. 자바 스크립트의 사용은,이 같은 쿠키를 만들 수 있습니다 :

document.cookie = "username=John Doe";

당신은 또한 (시간의 UTC 단위) 유효 기간을 추가 할 수 있습니다. 브라우저가 닫힐 때 기본적으로 쿠키를 삭제합니다 :

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";

경로 매개 변수를 사용하여, 당신은 경로 쿠키가 속한 브라우저를 알 수 있습니다. 기본적으로 쿠키는 현재 페이지에 속한다.

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";

쿠키는 자바 스크립트를 사용하여 읽기

자바 스크립트의 사용은, 쿠키는 다음과 같이 읽을 수 있습니다 :

var x = document.cookie;

모든 document.cookie를 같은, 쿠키 문자열을 반환 cookie1 = 값; Cookie2는 = 값; cookie3 = 값;

자바 스크립트를 사용하여 쿠키 변경

자바 스크립트의 사용은, 당신은 쿠키 쿠키와 같은 변화를 만들 수 있습니다 :

document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";

오래된 쿠키 덮어 씁니다.

쿠키는 자바 스크립트를 사용하여 삭제

쿠키를 삭제하는 것은 매우 간단합니다. 당신이 쿠키를 삭제하면 쿠키의 값을 지정할 필요가 없습니다. 간단히 매개 변수를 설정 납기 만료 :

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

올바른 쿠키를 보장하기 위해 사용자 정의 쿠키 경로를 삭제해야합니다. 경로를 지정하지 않으면, 일부 브라우저는 쿠키를 삭제할 수 없습니다.

쿠키 문자열

일반 텍스트 문자열과 같은 document.cookie를 속성보세요. 그러나 그것은 사실이 아니다. 값 쌍 - 당신이 완전한 쿠키 문자열 document.cookie를 쓰기됩니다 경우에도 다시 읽을 때, 당신은 단지 그 이름을 볼 수 있습니다. 새 쿠키를 설정하면 이전의 쿠키를 덮어 쓰지 않습니다. 새로운 쿠키는 다시 document.cookie를 읽으면, 당신은 같은거야, 그래서 document.cookie를 위해 추가됩니다; Cookie2는 = 값 cookie1 = 값 ;
특정 쿠키 값을 찾으려면, 당신은에 자바 스크립트 함수를 작성해야합니다 쿠키 쿠키 값 검색 문자열.

자바 스크립트 쿠키 예

다음 예제에서, 우리는 저장된 방문자 이름의 쿠키를 생성합니다. 방문자 처음 방문 페이지는 그 / 그녀의 이름을 입력하는 그를 / 그녀를 요청합니다. 이름은 다음 쿠키에 저장됩니다. 방문자가 같은 페이지에 도착 다음 번에, 그 / 그녀는 환영 메시지를 받게됩니다. 이 예에서 우리는 세 가지 자바 스크립트 함수를 생성합니다 :

  1. 함수 값 설정 쿠키
  2. 쿠키 함수의 값을 취득
  3. 쿠키의 값에 대한 함수 점검
  4. 쿠키 설정 기능

첫째, 우리는 함수 이름은 방문자의 쿠키 변수에 저장됩니다 만들 :

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays*24*60*60*1000));
  var expires = "expires="+ d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

예 설명 :
함수의 매개 변수는 쿠키 (CNAME)의 이름, 쿠키의 값 (cValue) 및 쿠키 전의 일수 (exdays)에 만료된다. 이 기능은 cookiename, 쿠키 값과 연결이 만료 문자열에 의해 쿠키를 설정합니다.
쿠키 수집 기능을
우리는 지정된 쿠키의 값을 돌려주는 함수를 만들 :

function getCookie(cname) {
  var name = cname + "=";
  var decodedCookie = decodeURIComponent(document.cookie);
  var ca = decodedCookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}

기능 :
파라미터 (CNAME)와 cookiename. 텍스트를 사용하여 검색 할 (CNAME + "=") 변수 (이름)을 만들 수 있습니다. ( ';'캘리포니아 = decodingCookie.split (예 : 배열 이름이 캘리포니아에서 분할 document.cookie를 세미콜론에 '$'와 같은 특수 문자와 디코딩 쿠키 캐릭터 쿠키 처리 )). (내가가 ca.length를 <I = 0 캘리포니아 배열을 통해 순환 내가 ++) 및 각각의 판독 값 C = CA [I]). 쿠키 (c.indexOf (이름) == 0 경우 ) 발견, 쿠키의 값이 ((name.length, c.length)를 c.substring하는) 반환됩니다. 당신이 쿠키를 찾을 수없는 경우, 반환 "."
쿠키 체크 기능은
마지막으로, 우리는 쿠키 여부를 확인하는 기능을 만들 수 있습니다. 당신이 쿠키를 설정하면 인사말을 표시합니다. 쿠키가 설정되어 있지 않은 경우, 365 일 함수 이기에, setcookie에게 사용자 이름 쿠키 저장소를 호출하여 메시지 상자가 사용자의 이름을 묻는 나타납니다 표시됩니다 :

function checkCookie() {
  var username = getCookie("username");
  if (username != "") {
   alert("Welcome again " + username);
  } else {
    username = prompt("Please enter your name:", "");
    if (username != "" && username != null) {
      setCookie("username", username, 365);
    }
  }
}

모든 코드가 함께 구현

function setCookie(cname, cvalue, exdays) {
  var d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  var expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for(var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}
function checkCookie() {
  var user = getCookie("username");
  if (user != "") {
    alert("Welcome again " + user);
  } else {
    user = prompt("Please enter your name:", "");
    if (user != "" && user != null) {
      setCookie("username", user, 365);
    }
  }
}

위의 예 checkCookie () 함수는 페이지가로드 될 때 실행됩니다.
자세한 내용은 기술 문서를 쿠키

추천

출처blog.51cto.com/13578973/2425819