javascript - 将自动变量传递给 JavaScript

标签 javascript variables applescript automator

我想在我的自动化工作流程中使用选定的文本。如果我使用 "Run bash action"我可以选择“将输入作为参数传递”。但在 "Run JavaScript" 的情况下行动——我不。

那么,我应该怎么做才能将剪贴板数据(文本)传递给我的JS函数sum_letters

My Automator workflow

最佳答案

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/

相关文章:

javascript - 为什么不能通过 Javascript 中的自调用函数动态创建变量?

javascript - 无法将主进程中定义的变量传递给启用了 contextIsolation 的渲染器 BrowserView?

Java 真正的全局变量(Android 版 Eclipse)

applescript - 在自动机中使用苹果脚本执行键盘快捷键

objective-c - 超时在 NSAppleScript 中没有效果

javascript - 如何使用我的后端从客户端 JS 发送电子邮件

javascript - 服务器 worker 被注册两次

javascript - 哪些字符对 window.name 有效?

linux - 设置包含文件内信息的变量

iphone - Applescript Xcode 用于在 iPhone 设备上清理、构建和安装