Как заменить placeholderTexts в Pages (iWork) с помощью JXA? - PullRequest
0 голосов
/ 27 марта 2020

Я конвертирую код AppleScript в JXA, и я застрял, потому что не могу понять, как заменить placeholderTexts.

Я пытался заменить чей, где, но безуспешно.

Вот код:

var PagesApp = Application("Pages");
var theseTags = PagesApp.documents[0].placeholderTexts.tag()

var uniqueTags = []

for(var i=0; i < theseTags.length; i++){
 var thisTag = theseTags[i];

 if (!(uniqueTags.includes(thisTag))) {
    uniqueTags.push(thisTag);    
 }
}

var theDate = "20200326"

for(var i=0; i < uniqueTags.length; i++){
    var thisTag = uniqueTags[i];

    if (thisTag.includes("theDate")) {

        PagesApp.documents[0].placeholderTexts.whose({tag: thisTag}).tag = theDate; // Error: Error: Invalid key form.

    }   
}

Строка ошибки в AppleScript:

set (every placeholder text whose tag is thisTag) to theDate

Заранее спасибо за любую помощь!

1 Ответ

0 голосов
/ 09 апреля 2020

После долгих попыток я нашел решение:

PagesApp.documents[0].placeholderTexts.whose( { tag: thisTag })[i].set(theDate);

Примечания: 1. Если вы хотите заменить один placeholderText, используйте [0] 2. Если вы хотите заменить placeholderText, который появляется более одного раза просто повторите строки как количество мест заполнителя, используя переменную [i]

...