5

我正在尝试用greasemonkey创建一个cookie,以阻止弹出一个窗口(在窗口弹出一个cookie后,窗口不会弹出很多次......这是代码

function setCookie(c_name, value, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ?
        "" :
        ";expires="+exdate.toUTCString());
}

var cookie_names = [
    'showDrushimPopUnderUserClick',
    'showDrushimPopUnder308'
];

for (var i in cookie_names) {
    setCookie(cookie_names[i], 1, 0);
}

但是没有创建cookie....

4

1 回答 1

6

如果您设置的 cookie 的expires值等于或早于当前系统时钟,它实际上会删除命名的 cookie(除非pathordomain不同,或者它是“安全”cookie - 此处均不适用)。

这个:

setCookie(cookie_names[i], 1, 0);

使该函数设置一个具有即时过期值的 cookie,从而有效地删除具有该名称的任何 cookie。

要实际设置新 cookie,请使用:

setCookie(cookie_names[i], 1, null);

这将导致您的代码设置会话 cookie——这可能是您想要的。

或使用:

setCookie(cookie_names[i], 1, 1);

设置一个在一天内过期的cookie。

于 2012-11-19T12:21:42.747 回答