Фильтрующие массивы Applescript, использующие ObjectSpecifier, использующий Javascript

`В примечании к выпуску Javascript Automation от Apple есть пример поиска в массиве с произвольным objectSpecifier.

firstTabsName = ObjectSpecifier.tabs[0].name
app.windows.whose({_match: [firstTabsName, 'Apple']})

Однако первые строки выдают ошибку. "TypeError: undefined не является объектом (оценивает" ObjectSpecifier.tabs "). Что я делаю не так? Спасибо за вашу помощь!"

2 ответа

Решение

Первая строка взрывается в firstTabsName = ObjectSpecifier.tabs, который возвращает missing value, Ничто после этого не может быть успешным.

Похоже, что опубликованный вами код взят из заметок о выпуске Apple, в которых отсутствует пустой набор скобок сразу после "ObjectSpecifier" и еще один набор после оператора "чей". Когда вы добавляете эти парены, конструктор для ObjectSpecifier называется AND финалом, спецификатор которого разрешается в список соответствующих окон. Итак, исправленный код:

app = Application('Safari')
firstTabsName = ObjectSpecifier().tabs[0].name // added parens
app.windows.whose({_match: [firstTabsName, "Apple"]})() // added parens
// --> [Application("Safari").windows.byId(9016)]
mute = ObjectSpecifier().checkboxes["Mute"].value
mutedPersons = people.whose({_match:[mute,"Selected"]}
Другие вопросы по тегам