在greasemonkey中使用javascript创建一个cookie

raf*_*ner 5 javascript cookies greasemonkey

我正在尝试使用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);
}
Run Code Online (Sandbox Code Playgroud)

但没有创建cookie ....

Bro*_*ams 6

如果您设置一个expires值等于或早于当前系统时钟的cookie ,它实际上会删除指定的cookie(除非是path或者domain不同,或者它是一个"安全"cookie - 这里没有一个适用).

这个:

setCookie(cookie_names[i], 1, 0);
Run Code Online (Sandbox Code Playgroud)

使该函数设置具有即时到期值的cookie,有效地删除具有该名称的任何cookie.

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

setCookie(cookie_names[i], 1, null);
Run Code Online (Sandbox Code Playgroud)

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

或使用:

setCookie(cookie_names[i], 1, 1);
Run Code Online (Sandbox Code Playgroud)

设置一天到期的cookie.