Вызов функции Javascript из внешнего файла с помощью Applescript
Можно ли вызвать функцию файла javascript в applecript? Я могу заставить его работать, когда написано 100% в файле applecript, или я могу использовать "сделать файл javascript каким-либо файлом". Есть ли способ смешать два? Что-то вроде этого:
tell application id "com.adobe.Photoshop"
tell current document
do javascript "function(Variable1,Variable1)" in file PathtoJSX
end tell
end tell
Функция находится во внешнем файле, но я хочу передать ей переменные из applecript.
Обновить:
Я отправил это, когда кто-то еще спрашивает, но PathtoJSX - это "Путь к файлу Javascript (.jsx)", поэтому PathtoJSX = file "desktop:yourFile.jsx"
3 ответа
Я думаю, что вы хотите сделать, иметь функциональную часть кода в файле и отправить аргументы через 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 (текст или файл), вы просто должны использовать ссылку на массив аргументов в этом коде. Обратите внимание, что если вы протестируете это (как я сделал), используя текстовую переменную вместо псевдонима (ссылка на файл), возвращаемому символу потребуется двойной экранирование.
Изменилось ли это с тех пор, как оно было впервые решено? У меня сработало следующее:
JavaScript
function testFunc(t) {
alert('argument one: ' + t[0] + '\r' + 'argument two: ' + t[1]);
}
testFunc(arguments);
AppleScript
tell application id "com.adobe.Photoshop"
activate
do javascript of file "pathToFile" with arguments {"foo", "bar"}
end tell
Смотрите также:
Applescript + Javascript и scriptListener
AppleScript хочет, чтобы вы избегали двойных кавычек во встроенном JavaScript.
Попробуй это:
tell application "Adobe Photoshop CS4"
activate
do javascript (file "/Users/Michael/Desktop/somescript.jsx") with arguments {"foo", "bar"}
end tell
С уважением.