Javascript Cookie函数不适用于域
以下是我使用的功能: 设置Cookie:Javascript Cookie函数不适用于域,javascript,jquery,cookies,Javascript,Jquery,Cookies,以下是我使用的功能: 设置Cookie: function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure ) { var cookie_string = name + "=" + escape ( value ); if ( exp_y ) { var expires = new Date ( exp_y, exp_m, exp_d ); cookie_string += ";
function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
var cookie_string = name + "=" + escape ( value );
if ( exp_y )
{
var expires = new Date ( exp_y, exp_m, exp_d );
cookie_string += "; expires=" + expires.toGMTString();
}
if ( path )
cookie_string += "; path=" + escape ( path );
if ( domain )
cookie_string += "; domain=" + escape ( domain );
if ( secure )
cookie_string += "; secure";
document.cookie = cookie_string;
}
阅读Cookie:
function get_cookie ( cookie_name )
{
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
删除Cookie:
function delete_cookie ( cookie_name )
{
var cookie_date = new Date ( ); // current date & time
cookie_date.setTime ( cookie_date.getTime() - 1 );
document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}
我用来构造cookie的Jquery:
if(get_cookie('visible')== 'no') {
$("#wrapper").hide();
$(".help").hide();
$("#slid .show").show();
$("#slid .hide").hide();
} else {
$("#slid .show").hide();
$("#slid .hide").show();
}
$("#slider").click(function() {
if(get_cookie('visible')== null) {
set_cookie('visible','no', 2020, 01,01, '/', 'domain.com');
} else {
delete_cookie('visible');
}
$(".help").slideToggle();
$("#wrapper").animate({ opacity: 1.0 },200).slideToggle(200, function() {
$("#slid img").toggle();
});
});
我正在尝试为domain.com下存在的路径为“/”的所有页面设置cookie
但是使用这些函数和jQuery它似乎不起作用,有人告诉我哪里出了问题吗?对我有效,只要
域
匹配或省略,并且域
或路径
中没有任何内容被escape()
损坏
(不应该对cookie参数使用
escape()
,这是一种与URL编码不同的非标准编码方案,因此,如果您试图从其他语言(如PHP)读取cookie,则无法使用任何内置函数对其进行正确解码。如果您想对cookie值本身进行真正的URL编码,请选择encodeURIComponent
/decodeURIComponent
,尽管如此,它们仍然不用于cookie参数。)我如何调整以添加路径和域以确保并忽略转义问题?只需将路径
和域
值直接添加到字符串中,而无需调用转义()
(或任何其他内容)对其进行编码。(是的,这确实意味着不可能在路径中有分号。)