且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在greasemonkey中使用javascript创建一个cookie

更新时间:2023-02-14 19:05:07

如果您设置的Cookie的 expires 值等于或早于当前系统时钟,则实际上 (除非路径网域不同,



这:

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

导致该函数设置具有即时到期值的Cookie,从而有效删除具有该名称的任何Cookie。



要实际设置新的Cookie,请使用:

  setCookie cookie_names [i],1,null); 

这将导致您的代码设置会话cookie - 这可能是你想要的。 p>

或使用:

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

设置一天过期的Cookie。


i'm trying to create a cookie with greasemonkey in order to stop a window from popping up (after the windows pops up a cookie is created the the window won't popup to many times... this is the code

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);
}

but no cookie is been created....

If you set a cookie that has an expires value equal to, or older than, the current system clock, it actually deletes the named cookie instead (Unless the path or domain are different, or it is a "secure" cookie -- none of which apply here).

This:

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

Causes that function to set a cookie with an instant expiration value, effectively deleting any cookie with that name.

To actually set a new cookie, use:

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

which will cause your code to set a session cookie -- which is probably what you want.

Or use:

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

To set a cookie that expires in a day.