Возвращаемое значение метода displayDialog вызывает ошибку -1700 при использовании в качестве строкового аргумента

#javascript #javascript-automation

#javascript #javascript-автоматизация

Вопрос:

Когда я пытаюсь напечатать Var 'password' , он говорит

Ошибка -1700: не удается преобразовать типы.

 var app = Application.currentApplication();
app.includeStandardAdditions = true;


var text = Application('System Events')
//prompt
var password = app.displayDialog('enter your password', {defaultAnswer: " "});
text.keystroke(password)
//returned message is Error -1700: Can't convert types.
  

Комментарии:

1. Вы пытаетесь зарегистрировать переменную password? Возможно, вместо text.keystroke() вы хотите использовать console.log(password) . Чтобы просмотреть то, что вы зарегистрировали, выберите «Показать журнал» в меню «Просмотр», а затем выберите вкладку «Сообщения» в нижней половине окна и повторно запустите скрипт. В качестве альтернативы, последний оператор вашего скрипта является его возвращаемым значением, поэтому, если вы просто создадите последнюю строку вашего скрипта password; (без «var»!), то вы должны увидеть его значение, напечатанное в нижней части окна ScriptEditor, когда скрипт завершится.

Ответ №1:

displayDialog Команда возвращает AlertReply запись, которая выглядит следующим образом в JXA:

 {"buttonReturned":"OK", "textReturned":"password"}
  

Чтобы получить значение, введенное в диалоговом окне, попробуйте добавить .textReturned к displayDialog вызову, вот так:

 var password = app.displayDialog('enter your password', {defaultAnswer: " "}).textReturned;