>  기사  >  웹 프론트엔드  >  cookie_jquery를 얻고 설정하기 위해 IE와 호환되는 jquery.cookie 함수 메서드

cookie_jquery를 얻고 설정하기 위해 IE와 호환되는 jquery.cookie 함수 메서드

WBOY
WBOY원래의
2016-05-16 17:23:541462검색
머리말

개발 과정에서 이전에 Discuz를 접한 적이 있었기 때문에 나중에 테스트할 때 IE를 사용할 수 있도록 common.js에서 getcookie, setcookie 메소드를 직접 사용했습니다. 당시 IE에서는 이 두 가지 방법이 작동하지 않는 것을 발견하여 동료들에게 도움을 요청했습니다. 이렇게 하면 jquery.cookie.js 파일의 원본이 거의 없습니다. 나중에 사용하고 연구할 수 있도록 아래에 붙여넣으세요.

소스코드
코드 복사 코드는 다음과 같습니다

/**
* 쿠키 플러그인
*
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
* MIT 및 GPL 라이센스에 따라 이중 라이센스가 부여됨:
* http://www.opensource .org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/

/**
* 주어진 이름과 값, 기타 선택적 매개변수를 사용하여 쿠키를 만듭니다.
*
* @example $.cookie('the_cookie', 'the_value');
* @desc 쿠키 값을 설정합니다.
* @example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true});
* @desc 사용 가능한 모든 옵션이 포함된 쿠키를 만듭니다.
* @example $.cookie('the_cookie', 'the_value');
* @desc 세션 쿠키를 만듭니다.
* @example $.cookie('the_cookie', null);
* @desc null을 값으로 전달하여 쿠키를 삭제합니다.
*
* @param 문자열 이름 쿠키의 이름입니다.
* @param String value 쿠키의 값입니다.
* @param 객체 옵션 선택적 쿠키 속성을 제공하기 위한 키/값 쌍이 포함된 객체 리터럴입니다.
* @option Number|날짜 만료 지금부터 일 단위로 만료 날짜를 지정하는 정수 또는 날짜 개체입니다.
* 음수 값이 지정되면(예: 과거 날짜) 쿠키가 삭제됩니다.
* null로 설정되거나 생략되면 쿠키는 세션 쿠키가 되며 브라우저가 종료될 때
* 유지되지 않습니다.
* @option 문자열 경로 쿠키의 경로 속성 값(기본값: 쿠키를 생성한 페이지의 경로).
* @option 문자열 domain 쿠키의 도메인 속성 값(기본값: 쿠키를 생성한 페이지의 도메인)
* @option Boolean secure true인 경우 쿠키의 보안 속성이 설정되고 쿠키 전송에는
* 보안 프로토콜(예: HTTPS)이 필요합니다.
* @type undefine
*
* @name $.cookie
* @cat 플러그인/쿠키
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/

/**
* 주어진 이름을 가진 쿠키의 값을 가져옵니다.
*
* @example $.cookie('the_cookie');
* @desc 쿠키 값을 가져옵니다.
*
* @param 문자열 이름 쿠키의 이름입니다.
* @return 쿠키의 값입니다.
* @type String
*
* @name $.cookie
* @cat 플러그인/쿠키
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
jQuery.cookie = 함수( 이름, 값, 옵션) {
if (값 유형 != '정의되지 않음') { // 이름과 값이 지정되면 쿠키 설정
options = options || {}
if (값 === null) {
value = '';
options.expires = -1
}
var 만료 = ''
if (options.expires && (typeof options.expires == '번호' | options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date(); setTime(date.getTime() (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
expires= '; ' date.toUTCString (); // 만료 속성 사용, IE에서는 max-age가 지원되지 않습니다.
}
var path = options.path : ''; var domain = options .domain ? '; domain=' options.domain :
var secure = options.secure' : ''; , encodeURIComponent(value ), 만료, 경로, 도메인, secure].join('');
} else { // 이름만 지정되고 쿠키 가져오기
var cookieValue =
if (document. cookie && document.cookie != '') {
var cookie = document.cookie.split(';')
for (var i = 0; i < cookie.length; i ) {
var cookie = jQuery.trim(cookies[i]);
// 이 쿠키 문자열이 원하는 이름으로 시작합니까?
if (cookie.substring(0, name.length 1) == (name '=') ) {
cookieValue = decodeURIComponent(cookie.substring(name.length 1))
break
}
}
}
return cookieValue; }
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.