使用Applescript从外部文件调用Javascript函数

f4t66c6m  于 2023-05-21  发布在  Java
关注(0)|答案(3)|浏览(147)

在applescript中可以调用javascript文件函数吗?我可以让它工作时写100%的applescript文件,或者我可以使用“做javascript文件一些文件”。有没有办法把这两个混合起来?就像这样:

tell application id "com.adobe.Photoshop"
    tell current document
        do javascript "function(Variable1,Variable1)" in file PathtoJSX
    end tell
end tell

该函数位于外部文件中,但我想从applescript传递变量。

更新:

我发布它时,别人问,但PathtoJSX是“路径到Javascript文件(.jsx)”,所以PathtoJSX =文件“桌面:yourFile.jsx”

vlurs2pr

vlurs2pr1#

我认为你想做的是在文件中包含函数部分的代码,并通过AppleScript将参数作为列表(数组)发送,这很容易做到:
jsx文件的内容可以是:

testFunc(arguments);

function testFunc(t) {
 alert('argument one: ' + t[0] + '\r' + 'argument two: ' + t[1]);
}

AppleScript可以是:

tell application id "com.adobe.Photoshop"
  activate
  do javascript PathtoJSX with arguments {"foo", "bar"}
      --I tested using:-- do javascript (choose file) with arguments {"foo", "bar")
end tell

无论你在JS代码中使用什么(文本或文件),你只要确保在代码中使用arguments数组引用。* 请注意,如果您使用文本变量而不是别名(文件引用)来测试(正如我所做的那样),则返回字符将需要双转义。*

vc6uscn9

vc6uscn92#

试试这个:

tell application "Adobe Photoshop CS4"
 activate
 do javascript (file "/Users/Michael/Desktop/somescript.jsx") with arguments {"foo", "bar"}
end tell

问候。

y53ybaqx

y53ybaqx3#

自从第一次解决以来,它是否发生了变化?以下为我工作:

  • JavaScript*
function testFunc(t) {
 alert('argument one: ' + t[0] + '\r' + 'argument two: ' + t[1]);
}

testFunc(arguments);
  • 苹果脚本 *
tell application id "com.adobe.Photoshop"
    activate
    do javascript of file "pathToFile" with arguments {"foo", "bar"}
end tell
  • 参见:*

Applescript + Javascript and scriptListener
AppleScript wants you to escape double quotes in inline JavaScript

相关问题