마지막 기사 : JS를 사용하여 쿠키 코드 공유 및 자세한 주석 지침을 읽고 쓰고 쓰기, 삭제하고 실제로 몇 가지 문제를 발견했습니다.
1. 쿠키는 로컬 파일의 Firefox에서만 디버깅 될 수 있으며 IE 및 Chrome은 유효하지 않습니다.
2. 쿠키는 결코 만료되지 않도록 설정되지 않았습니다. 그것은 단지 기간과 만료를 설정하는 것만으로 간주되며, 이는 분명히 불합리합니다.
이번에는보다 합리적인 쿠키 작동 코드가 제공됩니다.
코드 사본은 다음과 같습니다.
var 쿠키 = {
get : function (k) {
return ((new regexp ([ "(? :;)?" ", k,"= ([^;]*) ;? "]. join (" ")). test (document.cookie) && regexp ["$ 1 "] || "";;
},
set : function (k, v, e, d) {
var date = 새 날짜 ();
var expiresdays = e;
date.settime (date.gettime ()+ExpireSdays*24*3600*1000);
// 설정 시간이있는 경우 지정된 시간 내에 쿠키를 사용하십시오. 그렇지 않으면 만료되지 않습니다.
document.cookie = k+"="+v+"; expires ="+(e! = ''? date.togmtstring () : "gmt_string")+"; path =/; domain ="+(d || '');
},
델 : 기능 (k) {
var date = 새 날짜 ();
// 과거 시간으로 날짜를 설정합니다
날짜 .settime (date.gettime () -00000);
document.cookie = k+"=; expires ="+date.togmtstring ();
}
};
예제는 다음과 같습니다. 텍스트를 클릭하여 내용을 확장하고 다시 숨기기를 클릭하십시오. 내용이 숨겨지면 다음에 열릴 때 여전히 숨겨져 있으며 컨텐츠가 표시되면 다음에 열릴 때 여전히 표시됩니다.
코드 사본은 다음과 같습니다.
<div>
<H3> 수축 </h3>
<div id = "tabcon">
<p> 확장 후 여기에서 내용을 볼 수 있습니다
</div>
</div>
var btn = document.getElementsByTagName ( 'h3') [0];
btn.addeventListener ( 'click', function () {
var isclose = this.getAttribute ( 'data-isclose');
if (isclose == 'close') {
보여주다();
cookie.del ( 'flag');
}또 다른{
숨다();
쿠키. 세트 ( '플래그', '숨기기');
}
});
var tabcon = document.getElementById ( 'tabcon');
함수 show () {
tabcon.style.display = '블록';
btn.setattribute ( 'data-isclose', 'open');
btn.innerhtml = '수축';
}
함수 hide () {
tabcon.style.display = 'none';
btn.setattribute ( 'data-isclose', 'close');
btn.innerhtml = '확장';
}
var flag = cookie.get ( 'flag');
if (flag == 'hide') {
숨다();
}