Передать переменную automator в javascript
Я хотел бы использовать выделенный текст в моем рабочем процессе автоматизатора. Если я использую "Run bash action"
У меня есть опция "передать ввод в качестве аргументов". Но в случае "Run JavaScript"
действие - я не
Итак, что я должен сделать, чтобы передать данные буфера обмена (текст) в мою функцию JS sum_letters
?
1 ответ
Запуск Javascript в Automator требует объявления run()
функция, которая вызывается при инициализации. Это место, где размещены ваши основные реализации кода. Это определяется так:
function run(input, parameters) {
// Your script goes here
return input
}
У него есть два аргумента. Интересной для вас является input
Аргумент, который будет содержать любые данные, переданные из предыдущего действия в рабочем процессе, хранящиеся в виде массива.
В вашем рабочем процессе содержимое буфера обмена переносится из действия " Копировать в буфер обмена" и передается в input
переменная, которая будет содержать один элемент, input[0]
, значением которого будет содержимое буфера обмена.
Затем вы можете передать это в качестве аргумента вашей функции sum_letters()
,
Вот как это будет выглядеть:
Запустите Javascript:
function run(input, parameters) {
var clipboardText = input[0]
sum_letters(clipboardText)
// Other lines of code
return input[0]
}
function num_letters(k,d) {
var i = '', e = [
// ...etc...
}
function sum_letters(t) {
// Lines of code
}
и так далее. Так run()
вызывается немедленно, когда рабочий процесс достигает действия " Выполнить Javascript". Другие функции, такие как num_letters()
а также sum_letters()
вызывается только если это сделано явно изнутри run()
или изнутри другой функции, которая вызывается из run()
,
run()
заканчивается, когда он достигает return
заявление. Это передает значение по вашему выбору обратно в рабочий процесс Automator и к следующему действию.
Если вам нужны какие-либо разъяснения или есть дополнительные вопросы, дайте мне знать.