我想在我的自动化工作流程中使用选定的文本。如果我使用 "Run bash action"
我可以选择“将输入作为参数传递”。但在 "Run JavaScript"
的情况下行动——我不。
那么,我应该怎么做才能将剪贴板数据(文本)传递给我的JS函数sum_letters
?
最佳答案
Automator 中的
运行 Javascript 需要声明 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
}
等等。因此,当工作流到达运行 Javascript 操作时,会立即调用 run()
。其他函数,例如 num_letters()
和 sum_letters()
仅在从 run()
内部或内部显式调用时才会被调用从 run()
调用的另一个函数。
run()
在到达 return
语句时终止。这会将您选择的值传递回Automator工作流程并进行下一个操作。
如果您需要任何说明或有其他问题,请告诉我。
关于javascript - 将自动变量传递给 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48500272/