【发布时间】:2018-04-01 14:35:49
【问题描述】:
从 10.10 开始,Apple 也开始支持 JavaScript for Automation 而不是 AppleScript,但我真的很难理解他们的 JavaScript 语法。
例如让我们来看看这个简单的 AppleScript:
tell application "Mail"
set seletedMails to selection
repeat with aMail in seletedMails
set aSubject to subject of aMail
display dialog aSubject
end repeat
end tell
它所做的只是显示一个对话框,其中包含邮件应用程序中每封选定电子邮件的主题。没有比这更简单的了,不是吗?在 JavaScript 中应该很容易做到这一点,对吧?这是我的代码
function main ( ) {
var Mail = Application('com.apple.mail')
Mail.includeStandardAdditions = true
var selectedMails = Mail.selection
for (var aMail of selectedMails) {
Mail.displayDialog(aMail.subject)
}
}
main()
结果:
Error -1700: Can't convert types.
好吧...我做错了什么?我也不能打电话给selectedMails.length,同样的错误。 selectedMails 似乎根本不是一个数组。哦,等等,当我这样做var selectedMails = Mail.selections(注意复数形式!),然后我可以做selectedMails.length,但它总是给我0,不管我选择了多少邮件。当我这样做时(注意,也使用复数形式):
function main ( ) {
var Mail = Application('com.apple.mail')
Mail.includeStandardAdditions = true
var selectedMails = Mail.selections
for (var aMail of selectedMails) {
Mail.displayDialog(aMail.subject)
}
}
main()
它只是说:
Error -2700: Script error.
我们在这里得到了非常有用的错误消息,不是!
【问题讨论】:
标签: javascript macos automation applescript