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