问题标签 [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.
javascript - 删除 JXA 中的元素和/或元素-容器关系(用于自动化的 Javascript)
在 Javascript for Automation 中,可以创建一个元素对象,然后将其添加到容器中。例如:
这种工作方法在许多地方都得到了很好的描述和记录,因此 Calendar (iCal) 不需要有自己的方法来执行此操作。
如何从容器(事件)中删除一个对象(事件等),或者至少删除该事件与其日历之间的关系?在 AppleScript 中,人们会写:
所以看起来 JXA 版本会是这样的:
但是各种尝试只会给我invalid key forms
或Can't convert types
错误。谢谢!
javascript - Applescript 使用 Javascript 迭代 UIElements
有人可以帮我制作一个脚本来报告 uielement 的所有子项及其属性吗?它类似于 wholeContents() 函数。这是我的递归函数。
我只得到第一级。每个项目下都有一堆 UIElements 和数组。我认为这与 Applescript 返回对象说明符有关,但与实际对象无关?我不确定如何将对象说明符的名称作为函数调用。我尝试了 objproperty、obj.property()、eval("obj." + property + "()"),但它们都不起作用。我也试过 iterate(app.windows())[0]
谢谢你的帮助。
javascript - Applescript 使用 JavaScript 使用其 ObjectSpecifier 过滤数组
`Apple 的 Javascript 自动化发行说明有一个使用任意 objectSpecifier 搜索数组的示例。
但是,第一行会引发错误。“TypeError:未定义不是对象(评估'ObjectSpecifier.tabs')我做错了什么?谢谢你的帮助!`
javascript - JXA NSFileManager createDirectoryAtPathWithIntermediateDirectoriesAttributesError 异常
我在 OS/X 10.11.5 上使用以下 JXA(自动化 JavaScript)代码:
运行此程序时出现错误,尽管它确实创建了文件夹。这是错误:
错误:对象引发的异常:-[NSNull objectForKey:]:无法识别的选择器发送到实例 0x7fff7b69b780 (-2700)
从实际创建文件夹的事实和错误消息的文本来看,我假设问题出在“attributes”参数上,该参数为空(nil)。我认为它会创建文件夹,然后分配属性,这就是它失败的时候。
有人知道如何解决这个问题吗?我从 JXA 调用任何其他 NSFileManager 方法都没有遇到任何问题,包括我向其传递 null 和/或布尔值的方法,所以这被难住了。
感谢任何帮助。
typescript - 将 AppleScript sdef 转换为 TypeScript .d.ts?
大多数 OS X 应用程序(尤其是 Apple 编写的应用程序)都可以使用 AppleScript 或 JavaScript 编写脚本。每个应用程序支持的 API 由一个SDEF
文件描述。(参见例如sdef /Applications/Safari.app
。)
有没有办法.d.ts
从.sdef
文件中自动生成文件,从而创建适合与 TypeScript 一起使用的环境类型?
javascript - JXA 删除 Apple Mail 中的旧邮件
几个月前我问过这个问题。@foo 和 @bacongravy 在我的解决方案下方发布了一些我觉得有趣的评论。而不是继续这些评论(不适合评论的文本限制),我想我会问一个新的但类似的问题。我想从某个年龄的收件箱中删除邮件。@bacongravy 评论道:
问题是两方面的。一个插口是我的 Apple Mail 连接到由企业 Microsoft Active Directory 管理的 Microsoft Exchange 服务器。在 AppleScript 和 JavaScript 中,这似乎使 Mail 的脚本编写变得复杂。即使我只有一个,我也必须经常引用正确的“帐户”。所以,我确实设法让它工作:
但是,我犹豫要不要在这里停下来,因为插脚 2:帐户名称“Company Exchange”似乎会随着时间的推移而定期更改。我有时看到它只是称为“交换”,然后在其他时候(比如现在)它是“公司交换”。到目前为止,我发现的唯一不变的是“Exchange”这个词在某处的名称中。
为了解决这个问题,我一直习惯于做以下事情:
然而,
似乎没有工作。只是想知道它是否无法工作,或者我是否有语法错误阻止它工作。
javascript - 如何使用脚本编辑器和 JavaScript 访问 Chrome 活动标签 URL
我正在尝试使用 JavaScript 而不是 AppleScript 编写我的第一个 OS X 脚本,并且遇到了一些问题。第一部分是从 Chrome 中的选项卡中获取 URL,以便我可以做更多的工作(例如,在 safari 中创建一个新的阅读列表项)。我试过以下代码:
这会失败,并出现错误:“错误 -1700:无法转换类型。” 我需要一个字符串,但这仍然是一个对象说明符。所以我想我没有得到回复.get('url')
我没有任何运气找到从脚本环境中提取值的示例,但是我已经看到了一些关于将新选项卡放入浏览器的示例。对此的任何帮助表示赞赏!
applescript - 使用 JavaScript 为自动化保存联系人的个人资料图片
我想将联系人的个人资料图片写入文件。
1) 如何读取 TIFF 图像?
字典描述了图像属性:image (*TIFFPicture* or missing value) : Image for person.
在字典中 TIFFPicture 是一个链接,但是当我单击它时,没有其他信息。当阅读它的价值似乎是<>
。我如何将其作为图像读取?
2)如何写TIFF图像?
将其写入文件时,应指定什么格式?字典说:[as: type class] : how to write the data: as text, data, list, etc.
如果as:
需要写入图像,应该指定什么类型?当我使用例如as: 'data'
错误是“无法转换类型”。
例子:
javascript - JXA Applescript 获取滑块的值
我有一个滑块,如果我得到sliders()[0].value()
,它会返回一个完全错误的值。
我认为与价值指标有关。但是,valueIndicator
不会出现在sliders()[0].uiElements()
or中.entireContents()
。
如何获得滑块的正确值?如果必须使用值指示符,如何使用 JavaScript 中的值指示符获取它?
谢谢!
objective-c - 在 JavaScript 中使用 objC 桥接联系人框架进行自动化
如何在 JavaScript for Automation 中使用 ObjC 桥接联系人框架?我可以使用旧的 AddressBook 框架,但不能使用 Contacts 框架。
假设我有一个 ID:
旧的 AddressBook 框架运行良好:
但是如何使用联系人框架呢?我试过(基于文档unifiedContactWithIdentifier
):
这将失败并出现错误 -2700:脚本错误。弹出窗口说TypeError: store.unifiedContactWithIdentifierKeysToFetchError is not a function
编辑:一个更基本的例子,该defaultContainerIdentifier
方法给出了一个undefined
输出: