Как сделать новый документ с JXA?

Как создать новый документ и закрыть? Это нужно для обхода багги-безумия автоматизации Apple. Я пытаюсь сделать следующее:

var app = Application('Keynote')
var doc = app.make(new document)  // How to write this correctly?
doc.close({saving: 'no'})

person Jonas    schedule 13.08.2018    source источник


Ответы (1)


Синтаксис AppleScript и JavaScript совершенно другой. Вы должны больше думать с точки зрения JavaScript

Например, JXA не понимает make(new).

Вы должны создать экземпляр из имени класса (обратите внимание на написание в верхнем регистре), а затем вызвать make().
На самом деле ключевые слова var и точка с запятой в конце не нужны.

keynote = Application('Keynote')
keynote.activate()
newDocument = keynote.Document().make()

В скобках Document() вы можете передать параметры, аналогичные with properties AppleScript, например.

newDocument = keynote.Document({
    documentTheme: keynote.themes["Gradient"], 
    width:1920, 
    height:1080
})

Многословные свойства AppleScript, такие как document theme, записываются как одно слово в верблюжьем регистре.

Чтобы закрыть самый передний документ, напишите

keynote.documents[0].close()
person vadian    schedule 13.08.2018
comment
Скажите, пожалуйста, где вы взяли эту документацию? И спасибо за ваш ответ! - person Jonas; 14.08.2018