如何解决在此脚本中未设置jQuery cookie
| 我正在尝试扩展此脚本以允许使用多个页面。 我不想使用单个时间戳,而是使用这样的逗号分隔列表:1305536229613,1305536315210,1305536318026
问题是脚本服务器端正确设置了cookie,但js代码不起作用(至少在Opensuse 11.3上的Firefox 3.6.17中)。
我必须在设置时间间隔之前添加$.cookie(cookieName,null)
(!),才能使cookie = $.cookie(cookieName);
在下面的2行中工作...(我是怎么发现的,我不知道...)。
而且更新cookie无效:我可以在另一个页面中看到使用服务器脚本cookie一直在增长
$(document).ready(function(){
var cookieCheckTimer;
var cookieName = \'download_token\';
var $wait = $(\'.wait\');
var $waitMsg = $(\'<span>Processing,please wait...</span>\').prepend(
$(\'<img />\').attr(\'src\',\'/img/wait.gif\').css({
\'vertical-align\': \'middle\',\'margin-right\': \'1em\'
}));
//add hidden field to forms with .wait submit
$wait.parent().each(function(){
$(this).append($(\'<input />\').attr({
\'type\': \'hidden\',\'name\': cookieName,\'id\': cookieName
}));
});
$wait.click(function(){
var token = String(new Date().getTime());
//set token value
$(\'#\' + cookieName).val(token);
//hide submit buttons
$(\':submit\').hide();
//append wait msg
$(this).after($waitMsg);
//why?? don\'t know...
$.cookie(cookieName,null) //<<<<<<<<<<
//set interval
cookieCheckTimer = window.setInterval(function(){
var cookie = $.cookie(cookieName);
if (cookie != null){
cookie = cookie.split(\',\');
var idx = cookie.indexOf(token);
if (idx >= 0){
//detach wait msg
$waitMsg.detach();
//show again submit buttons
$(\':submit\').show();
//remove token
cookie.splice(idx,1);
//clear timer
window.clearInterval(cookieCheckTimer);
//update cookie value
if (cookie) $.cookie(cookieName,cookie.join(\',\'));
else $.cookie(cookieName,null);
}
}
},1000);
});
});
我正在使用存储库中的最新版本的jquery.cookie插件
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。