4

I am trying to delete a the value cookie that I created after a certain interval. Lets say after 10 second I want the cookie gone

function fullday()
{
    document.getElementById("res").innerHTML="1 day";
    document.cookie="day="+1;
    document.cookie.setMaxAge(0);
}

This is the code above. I'm coding in PHP right now and then when I try to destroy cookie from PHP it works fine, however I need to pass the cookie's value in javascript so now im stuck with it and cannot destroy it.

4

4 に答える 4

5

Cookie を削除するには、有効期限を過去の日付に設定する必要があります。これを行う関数は、たとえば次のようになります。

var delete_cookie = function(name) {
    document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};

次に、「cookie」という名前の Cookie を削除するには、次のようにします。

delete_cookie('cookie');
于 2012-10-11T11:29:23.337 に答える
2

「キー」にクッキー名を渡す

 _generatePrefix: function()
    {
        return '__session:' + this._id + ':';
    }
  _cookieCache: undefined,
function cookie clear(key)
  {    
    document.cookie = this._generatePrefix() + key + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    delete this._cookieCache[key]
  }

特定のCookieをクリアする必要がある場合は、この関数を呼び出します

すべての Cookie をクリアしたい場合は、これを使用します

   _generatePrefix: function()
    {
        return '__session:' + this._id + ':';
    }
     _cookieCache: undefined, 
     function clearall()
    {
        for (var i in this._cookieCache) {
            document.cookie = this._generatePrefix() + i + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
        }
        this._cookieCache = {};
    }
于 2012-10-11T11:33:05.907 に答える
1

このように使用します

var date1 = new Date();
date1.setTime(date.getTime()+(10*1000));
var expires = "; expires="+date.toGMTString();

document.cookie = "day="+1+expires;

これにより、10 秒後に Cookie が失効します。

于 2012-10-11T11:31:05.450 に答える
0

最初の質問は、Cookie を作成したときに、なぜ Cookie の有効期限だけを指定しなかったのかということです。

2 番目の質問は、どのようにしてクックリーを作成したかということです。Javascript または PHP 経由ですか?

JavaScript で Cookie 値以外のものを取得することはできません。したがって、Cookie の古さを知りたい場合は、その情報を値に埋め込む必要があります。ただし、Cookie が PHP から設定されている場合は、 TTL が 10 秒の場合、クロック同期の問題が発生します。setcookie を直接呼び出すのではなく、サーバー側からタイムスタンプ付きの Cookie を作成する JavaScript を生成する必要があります。

于 2012-10-11T11:32:38.340 に答える