Javascript FullCalendar-在cookie中保存事件

Javascript FullCalendar-在cookie中保存事件,javascript,fullcalendar,jquery-cookie,Javascript,Fullcalendar,Jquery Cookie,我正在尝试创建一个带有外部拖动功能的完整日历,您可以将添加到日历中的事件保存在cookie中。我更愿意将其保存在服务器上,但这不是一个选项。我正在使用jquery cookie插件来简化它 到目前为止,我所拥有的是我认为有效的保存功能: …但我下次打开日历时无法将其包括在内。我试过这样做,但似乎根本不起作用: $(document).ready(function() { .... var savedEvents = $.cookie("DSCalendar");

我正在尝试创建一个带有外部拖动功能的完整日历,您可以将添加到日历中的事件保存在cookie中。我更愿意将其保存在服务器上,但这不是一个选项。我正在使用jquery cookie插件来简化它

到目前为止,我所拥有的是我认为有效的保存功能:

…但我下次打开日历时无法将其包括在内。我试过这样做,但似乎根本不起作用:

$(document).ready(function() {
     ....

        var savedEvents = $.cookie("DSCalendar");
        $('#calendar').fullCalendar({

            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            events: savedEvents,
             ...........

有没有可能有人曾经这样做过,或者知道如何不用服务器保存事件?

我认为cookie插件无法存储复杂的对象数组。这就是我建议使用JSON.stringify的原因。但是,由.fullCalendar'clientEvents'返回的对象数组包含递归对象引用,因此即使是JSON.stringify也无法成功地转换它

看看这把小提琴:

在将临时对象数组存储到cookie之前,我创建了一个临时对象数组,然后JSON.stringify和JSON.parse工作得很好


让我知道这是否有用。

我认为cookie插件无法存储复杂的对象数组。这就是我建议使用JSON.stringify的原因。但是,由.fullCalendar'clientEvents'返回的对象数组包含递归对象引用,因此即使是JSON.stringify也无法成功地转换它

看看这把小提琴:

在将临时对象数组存储到cookie之前,我创建了一个临时对象数组,然后JSON.stringify和JSON.parse工作得很好


让我知道这是否有帮助。

在FullCalendar v1中,如果您远程加载数据,客户端事件的内容包括一个名为source的密钥对象对。该对中包含远程数据的URL,如果您试图对客户端事件进行字符串化以将其保存或发送到需要字符串而不是对象数组的位置,则会返回将循环结构转换为JSON的错误。我使用的解决方法是使用以下脚本删除源键和对象:

var eventsFromCalendar = $('#calendar').fullCalendar('clientEvents');
for (var i = 0; i < eventsFromCalendar.length; i++) {
    delete eventsFromCalendar[i].source
    }
var jstrng = JSON.stringify(eventsFromCalendar);

在FullCalendar v1中,如果远程加载数据,则客户端事件的内容包括每个事件的一个名为source的密钥对象对。该对中包含远程数据的URL,如果您试图对客户端事件进行字符串化以将其保存或发送到需要字符串而不是对象数组的位置,则会返回将循环结构转换为JSON的错误。我使用的解决方法是使用以下脚本删除源键和对象:

var eventsFromCalendar = $('#calendar').fullCalendar('clientEvents');
for (var i = 0; i < eventsFromCalendar.length; i++) {
    delete eventsFromCalendar[i].source
    }
var jstrng = JSON.stringify(eventsFromCalendar);

如果调试这个,savedEvents的值是多少?另外,您可能希望使用JSON.stringify和JSON.parse从cookie中存储和检索此对象。$。cookieDSCalendar,JSON.stringifyeventsFromCalendar,{expires:1};var savedEvents=JSON.parse$.cookieDSCalendar;我有一个类似的问题-但我使用的是LocalStorage而不是Cookie。@ganeshk-对于已保存的每个事件,savedEvents值都是[object object],这不太正确。添加JSON.stringify/parse为我提供了{length:1,0:{},context:{jquery1710895694661894247:1,location:{},selector:calendar},并且日历不会显示在页面上。您是否找到了一种使用LocalStorage的简单方法?如果您调试它,savedEvents的价值是什么?另外,您可能希望使用JSON.stringify和JSON.parse从cookie中存储和检索此对象。$。cookieDSCalendar,JSON.stringifyeventsFromCalendar,{expires:1};var savedEvents=JSON.parse$.cookieDSCalendar;我有一个类似的问题-但我使用的是LocalStorage而不是Cookie。@ganeshk-对于已保存的每个事件,savedEvents值都是[object object],这不太正确。添加JSON.stringify/parse为我提供了{length:1,0:{},context:{jquery1710895694661894247:1,location:{},selector:calendar},并且日历不会显示在页面上。您是否找到了使用LocalStorage的简单方法?谢谢!这非常有帮助——尽管我最终选择了localStorage,因为cookies似乎没有正确地保存它。终于成功了!非常感谢。这非常有帮助——尽管我最终选择了localStorage,因为cookies似乎没有正确地保存它。终于成功了!