在 OSA 脚本中使用 Application.currentApplication()
时,从命令行运行它时会发出以下警告:
warning: failed to get scripting definition from /usr/bin/osascript; it may not be scriptable.
为什么会发生这种情况以及可以采取什么措施?
示例
app.js:
#!/usr/bin/env osascript -l JavaScript
var app = Application.currentApplication();
app.includeStandardAdditions = true;
console.log('Hello, I’m ' + app.pathTo(this));
外壳输出:
❯❯❯ ./app.js
2015-03-01 12:39:29.611 app.js[65539:6266286] warning: failed to get scripting definition from /usr/bin/osascript; it may not be scriptable.
Hello, I’m /Users/aaron/Desktop/app.js
最佳答案
JXA 发行说明如下:
<强>6。获取正在运行脚本的应用程序
Application.currentApplication()
是的,我认为它也会给我一个指向我的脚本本身的脚本对象。
我使用 JavaScript 直接在 Skript 编辑器中对其进行了测试:
var app = Application.currentApplication();
app.includeStandardAdditions = true;
console.log('Hello, I’m ' + app.pathTo(this));
“事件”选项卡给了我
app = Application("Skript-Editor")
app.pathTo(null)
/* Hello, I’m /Users/.../Desktop/app.scpt */
当从 osascript
运行此 app.scpt 时,函数 currentApplication()
返回 osascript,并且环境警告该应用程序可能无法编写脚本...这是一个错误吗?我不知道,osascript 是正在执行的应用程序,而且它不可编写脚本:-/
但否则:app
如何执行函数 pathTo
以及为什么将 null
传递给它?
只是我的 2 美分...迈克尔/汉堡
关于macos - 在 JavaScript for Automation (OSA) 中使用 Application.currentApplication() 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28793126/