问题标签 [javascript-automation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
454 浏览

javascript - 从另一个 JSAppleScript 运行另一个 JS AppleScript 时出现权限错误

我正在尝试将我的 .applescript 文件分成不同的文件来整理。

我有一个名为的 JS AppleScript 文件Test.applescript,它尝试运行 JS AppleScript 文件Group Tracks Dependency.applescript,我想要做的是将参数传入依赖脚本并从中获取返回值。(它创建了一组 iTunes 曲目数组)。

测试.applescript

组跟踪 Dependency.applescript

当我尝试运行测试脚本时,出现此错误(第 5 行是该app.doShellScript行):

有没有办法解决这个问题?我还应该注意,我希望其他人将来能够下载这些脚本并在他们自己的 iTunes 库上运行它们(虽然目前它对用户不友好)。

如果没有办法解决这个问题,那么导入另一个 JS AppleScript 文件会起作用吗?

0 投票
1 回答
810 浏览

safari - 如何使用 JavaScript for Automation (JXA) 最大化 Safari 窗口?

我正在寻找一种使用JavaScript for Automation (JXA)最大化 Safari 窗口的方法。

我可以打开 Safari 并将窗口放在前面,但我找不到全屏打开它的方法。

0 投票
1 回答
259 浏览

javascript - JXA 和 .length

我正在尝试使用 automator 将我的旧 javascript 程序变成 Mac 上的服务。当我使用我的代码时,它不起作用。我已经检查了我能做的,我发现我遇到的最基本的问题是 .length 来自 javascript 的属性不起作用。这个简单的程序没有返回它应该返回的内容。它什么也不返回:
function run(input) { var ina = 'hello'; var newn = ina.length; return newn; }

0 投票
1 回答
157 浏览

macos - 如何使用 JavaScript for Automation (JXA) 在特定屏幕/显示器上打开应用程序?

我想使用JavaScript for Automation (JXA)在两个不同的屏幕/显示器上打开两个应用程序,这怎么可能?

我能够打开应用程序,但我找不到控制它应该在哪里打开的方法。

0 投票
0 回答
132 浏览

macos - 使用 JXA 重新排序智能播放列表(使用 iTunes 的 AppleScript JS)

我正在尝试制作一个将重新排序智能播放列表的 AppleScript(在 JS 中)。

我目前可以重新排序非智能播放列表track.move({to: playlist});(因此我可以将播放列表中的任何曲目移到底部),但这似乎不适用于智能播放列表,因为我收到此错误;Error: File permission error. 这是有道理的,因为您不能只将曲目添加到智能播放列表中;它的内容基于一组规则。

有没有办法重新排序智能播放列表?

0 投票
1 回答
544 浏览

javascript-automation - 如何在 JXA 中使用 POSIX 路径

在 AppleScript 中,我经常需要在文件之间转换为 POSIX 路径和 AppleScript 的本机文件别名。

这样做的方法是通过标准添加中的 POSIX File 类:

我如何在 JXA 中进行这些强制转换/转换?我试过了

但我只得到

第 4 行错误:错误:POSIXFile 不是应用程序 «Appname» 的有效类

0 投票
3 回答
2491 浏览

javascript - 使用 Javascript 实现自动化的 setTimout

我尝试使用 awindow.setTimeout但在运行时出现错误:

第 182 行错误:TypeError: window.setTimeout 不是函数。(在

,window.setTimeout未定义) (-2700)

有人能帮我吗 ?

0 投票
3 回答
1455 浏览

automator - 使用 JXA 从选定文本/突出显示的文本中获取字符串

我是这里的晚餐新手,无论是 Javascript 还是 JXA,如果我提出一些愚蠢的问题,请原谅我。但是我正在尝试找出一种方法来使用 JXA - JavaScript for Automation 从突出显示的文本中获取字符串,因为自从优胜美地以来,可以在 Automator 中识别 Javascript,我想我可以用这些来做一些事情: window.getSelection在:

此代码不是我的,有人发布了此代码。但是我发现我不能在 Automator 中使用windowordocument来更改 Mac OS,所以有人可以告诉我如何将此 Javascript 代码转换为 Automator 可以理解的 JXA 吗?

非常感谢!

0 投票
1 回答
49 浏览

javascript - 寻找在浏览器和节点之外工作的 JS 框架

我正在寻找一个可以在没有浏览器和 Node.js 的情况下工作的 JavaScript 框架。我需要一个系统来组织一些规模不断增长的 JS AppleScript,所以我正在寻找像 AngularJS 的工厂、服务等这样的东西。

因为我只是在寻找像 AngularJS 这样的东西的一小部分,所以我尝试自己制作一个是没有问题的。我相信这会很有趣:)。但是那里有什么已经存在的东西吗?

0 投票
1 回答
976 浏览

javascript - Javascript for Automation (JXA) “whose()”中的比较/丰富查询

如果我想查看我的 OS X 日历(以前称为“iCal”)以查找摘要为“午餐”的事件,我可以执行以下操作:

即使考虑到这只搜索第一个日历的事实,它也非常、非常、非常慢,因为每个 iCal 事件都需要转换为 Javascript 对象才能运行。这是一个更快的公式:

这非常适合精确匹配summary == 'Lunch'。但是诸如endDate: > new Date()or之类的比较summary: /lunch/i呢?是否可以将本机 (ObjC) 代码传递给 who() 选择器?是否有任何文件可以提供whose()帮助?