4

現在、私はhttps://github.com/carhartl/jquery-cookie for jquery を見つけた優れたCookieハンドラーを利用しています。唯一の問題は、Cookie が日単位でしか設定されないことです。それをバイパスして、場合によっては秒/時間、または特定の時間に設定できるようにしたいと思います。

プラグインを見ると、具体的にどこに変更を加えているかがわかります。しかし、どうにかして独自のカスタム コードでプラグインを拡張する手段があるのではないかと思っているので、通常どおりプラグインを呼び出すと、設定したパラメーターを使用できます。全体的なアイデアは、最初のスクリプトへのハッキングを回避することです。そのため、作成者が新しいバージョンを適時にリリースした場合、それに応じて更新でき、アップグレード プロセスで忘れる可能性のある変更を失うことはありません。

現在のプラグインの行 44-47 には、

if (typeof options.expires === 'number') {
                var days = options.expires, t = options.expires = new Date();
                t.setDate(t.getDate() + days);
            }

私はそれを直接ハッキングして、好きなようにできることを知っています。しかし、アイデアは、全体的に同じスクリプトを使用して、何らかの外部手段を通じてそれを行うことです

4

3 に答える 3

1

他の人が示唆しているように、プラグインは追加したい機能をすでにサポートしていると思います。しかし、私はあなたの質問に答えるつもりです> I am wondering is there a means of extending the plugin with my own custom code

プラグインは$.cookie、3 つの引数 ( ) を持つ関数に設定しますfunction (key, value, options)。次の方法で拡張できます。

// in a js file after including `jquery.cookies.js`
(function () {
    var cookie = $.cookie;
    $.cookie = function (key, value, options) {
        // TODO: add your code here

        $.cookie = cookie;
        var out = $.cookie(key, value, options);
        $.cookie = this;
        return out;
    }
}());
于 2013-04-22T03:43:35.563 に答える
0

必要な秒数を 86400 で割ることができます。したがって、30 秒の場合は次を使用します。

$.cookie('the_cookie', 'the_value', { expires: 30/86400, path: '/' });
于 2013-04-22T03:40:39.820 に答える
0

その仮定は正しくないと思います。

あなたが使用することができます

$.cookie('my-key', 'my-valye', {
    expires: new Date()
})

または

var expires = new Date();
expires.setHours(expires.getHours() + 1);
$.cookie('my-key', 'my-valye', {
    expires: expires 
})
于 2013-04-22T03:36:30.433 に答える