1

我真的很难理解如何使用 Yosemite 中对 Javascript 自动化的新支持来与 iCal 交互。我对 OOP 没有太多经验,所以这可能是我的问题所在。

有人可以帮我提供将新事件添加到指定日历的代码吗?我可能可以从那里对其进行逆向工程以了解如何使用它。

谢谢

更新

这是我正在尝试的代码..

// -- perform adding to iCal

// -- select "Test" calendar
theCalendar = iCal.calendars.Test;
events = theCalendar.events;

// -- load in the events
stringifiedData = Safari.doJavaScript("localStorage.getItem('theEvents');", {
in: Safari.windows[0].tabs[0]})

// -- parse data back to js object
theEvents = JSON.parse(stringifiedData);

// -- loop through events
for (var key in theEvents) {
    var obj = theEvents[key];

    // -- set vars
    theDate = obj['date'];
    theDescription = obj['description'];
    theSummary = obj['summary'];
    theLocation = obj['location'];
    theStartTime = theDate + " " + obj['startTime'];
    theEndTime = theDate + " " + obj['endTime'];

    // -- create event object
    theEvent = iCal.Event({

        description: theDescription,
        summary: theSummary,
        location: theLocation,
        startDate: theStartTime,
        endDate: theEndTime

    });

    // -- get the last index event
    last = events.length;

    // -- insert it into iCal
    events.push(theEvent);

}

我收到的错误..

Error on line 68: TypeError: undefined is not an object (evaluating 'events.push(theEvent)')

更新

我弄清楚了这个问题。我的日期格式不正确..它们只是字符串。所以我确保将它们变成日期对象,并且我能够使用成功插入

events[last] = theEvent;
4

0 回答 0