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

时间:2014-05-07 20:04:05

标签: javascript function applescript photoshop-script

是否可以在AppleScript中调用javascript文件函数?我可以在applescript文件中100%写入时工作,或者我可以使用“do javascript file some file”。有没有办法混合这两个?像这样:

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 =文件“desktop:yourFile.jsx”

2 个答案:

答案 0 :(得分:2)

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

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代码(文本或文件),您只需确保在该代码中使用参数数组引用。 请注意,如果您使用文本变量而不是别名(文件引用)对此进行测试(就像我一样),则返回字符需要双重转义。

答案 1 :(得分:0)

试试这个:

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

问候。