javascript - 删除 JXA(用于自动化的 Javascript)中的元素和/或元素-容器关系

标签 javascript macos automation javascript-automation

在自动化 Javascript 中,可以创建一个元素对象,然后将其添加到容器中。例如:

    var cal = Application('Calendar')
    var newEvent = cal.Event(
          {    
               summary: todoSummary,
               startDate: new Date(),
               endDate: endDate
          }
    );
    cal.calendars[0].events.push(newEvent);
}

这种工作方法在很多地方都有很好的描述和记录,因此日历 (iCal) 不需要有自己的方法来执行此操作。

如何从容器(事件)中删除对象(事件等),或者至少删除该事件与其日历之间的关系?在 AppleScript 中可以这样写:

delete (every event whose uid is eventID)

所以 JXA 版本似乎是这样的:

cal.calendars.events.delete.whose({uid: event.uid()})

但是各种尝试只会给我带来无效的 key 形式无法转换类型错误。谢谢!

最佳答案

事实证明,delete 方法驻留在 Application 对象本身上,因此,它很简单:

// delete most recent message on first calendar
var ical = Application('Calendar');
var ev = ical.calendars[0].events.last();
ical.delete(ev);

// and specifically for OS X calendar:
ical.reloadCalendars();

关于javascript - 删除 JXA(用于自动化的 Javascript)中的元素和/或元素-容器关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38042236/

相关文章:

linux - ccmake。与 ccmake [路径]

iOS native 层自动化

c# - 如何使用 javascript 定位动态生成的文本框

php - 在 PHP echo 中嵌入 javascript

ios - 当取消处理程序引用 self 时,在 -dealloc 中取消 XPC 连接

objective-c - 应用程序包之外的应用程序引用框架

java - 我的设备已获得授权,但在我运行登录测试后,它说要再次授权 -QA Tester

selenium - 如何自动点击没有ID的按钮

javascript - 是否可以使用三元赋值来解构函数参数?

javascript - 如何使用 JQuery 检查输入单选按钮?