最後の記事:JSを使用して読み取り、書き込み、削除、Cookieコードの共有、詳細な注釈の手順を使用して、実際にいくつかの問題が見つかりました。
1. Cookieは、ローカルファイルのFirefoxでのみデバッグできます。IEとChromeは無効です
2。クッキーは、期限切れになるように設定されていません。それは、期間を設定し、期限切れにすることのみを考慮しますが、これは明らかに不合理です。
今回は、より合理的なCookie操作コードが与えられます。
コードコピーは次のとおりです。
var cookie = {
get:function(k){
return((new regexp(["("(?:;)? "、k)、" =([^;]*); "]。join(" ")))。test(document.cookie)&& regexp [" $ 1 "])|| "";
}、
set:function(k、v、e、d){
var date = new Date();
var expiresdays = e;
date.settime(date.gettime()+expiresdays*24*3600*1000);
//設定された時間がある場合は、指定された時間内にCookieを使用してください。そうしないと、期限切れになりません
document.cookie = k+"="+v+"; expires ="+(e!= ''?date.togmtstring(): "gmt_string")+"; path =/; domain ="+(d || '');
}、
del:function(k){
var date = new Date();
//日付を過去の時間に設定します
date.settime(date.getTime() - 10000);
document.cookie = k+"=; expires ="+date.togmtstring();
}
};
例は、テキストをクリックしてコンテンツを展開し、再度非表示にすることを示します。コンテンツが非表示になった場合、次回開いたときには非表示になり、コンテンツが表示された場合でも、次回開いたときに表示されます。
コードコピーは次のとおりです。
<div>
<h3> shrink </h3>
<div id = "tabcon">
<p>ここでの内容は、拡大した後に見ることができます</p>
</div>
</div>
var btn = document.getElementsBytagname( 'h3')[0];
btn.addeventlistener( 'click'、function(){
var isclose = this.getAttribute( 'data-isslose');
if(isclose == 'close'){
見せる();
cookie.del( 'flag');
}それ以外{
隠れる();
cookie.set( 'flag'、 'hide');
}
});
var tabcon = document.getElementById( 'tabcon');
関数show(){
tabcon.style.display = 'block';
btn.setattribute( 'data-isslose'、 'open');
btn.innerhtml = 'shrink';
}
function hide(){
tabcon.style.display = 'none';
btn.setattribute( 'data-isslose'、 'close');
btn.innerhtml = '展開';
}
var flag = cookie.get( 'flag');
if(flag == 'hide'){
隠れる();
}