Macos 使用OSXJavascriptforAutomation(JXA)来监听;开放式地点“;苹果事件
我正在使用OSXJavascriptforAutomation(JXA),我希望能够捕获“开放位置”苹果事件 根据,我已经设置了一个客户URL处理程序。我该如何做相当于Macos 使用OSXJavascriptforAutomation(JXA)来监听;开放式地点“;苹果事件,macos,automation,applescript,javascript-automation,Macos,Automation,Applescript,Javascript Automation,我正在使用OSXJavascriptforAutomation(JXA),我希望能够捕获“开放位置”苹果事件 根据,我已经设置了一个客户URL处理程序。我该如何做相当于 on open location this_URL ... end open location 用JXA?我尝试了以下所有操作,但都无法执行: app = Application.currentApplication(); app.includeStandardAdditions = true; function run
on open location this_URL
...
end open location
用JXA?我尝试了以下所有操作,但都无法执行:
app = Application.currentApplication();
app.includeStandardAdditions = true;
function run() {
app.displayDialog(JSON.stringify(arguments));
}
function openLocation() {
app.displayDialog(JSON.stringify(arguments));
}
function openDocuments() {
app.displayDialog(JSON.stringify(arguments));
}
function onOpenLocation() {
app.displayDialog(JSON.stringify(arguments));
}
苹果的JXA文档()没有讨论如何处理开放位置事件。我的脚本将被打开,因为如果我在函数之外添加它,我可以得到一个要显示的警报。我只是无法得到一个要执行的函数并在URL中传递
我通过使用AppleScript处理程序来解决这个问题,然后调用我的JXA代码,但这显然不太理想
我在JXA Cookbook()中也没有看到任何与此相关的内容。正如您所建议的,诀窍(目前)似乎是立即将控制权传递给同一捆绑包中的第二个(用于自动化的JavaScript)脚本
on open location strURL
run script (path to resource "jsHandler.scpt" in directory "Scripts") with parameters {{|URL|:strURL}}
end open location
好问题。我期待着答案。函数签名中遗漏一个参数是复制粘贴错误吗?因为它应该是
函数openLocation(thisURL){//process thisURL}
如果它要工作的话…@kopischke:no,我故意省略了URL参数(例如thisURL)。我使用JS函数可用的特殊“参数”来确定是否调用了我的函数。我相信我已经按照您的建议使用了显式参数进行了尝试,但这有关系吗?我如何访问jsHandler.scpt中的参数?我尝试过从函数run(args)迭代args,但没有乐趣。