将数组从JavaScript传回Applescript

问题描述 投票:-1回答:1

我正在AppleScript中使用do Javascript函数来匹配Safari中的某些HTML。输出是一个数组,但是我似乎无法弄清楚如何将其返回到AppleScript中。

我知道问这听起来很疯狂,但是他们必须像这样子例程才能工作吗?

这是我到目前为止的内容:

tell application "Safari"
    set urlList to do JavaScript "
        const str = document.documentElement.innerHTML;
        const results = str.matchAll(/.../gi);
        const group1 = (Array.from(results, m => m[1])); 
        alert(group1); "
    urlList
end tell

如何使用Array函数的结果定义urlList变量?

javascript arrays safari applescript
1个回答
0
投票

您无法返回do javascript命令的结果,因为它是用于将JavaScript代码字符串应用于文档的命令。您应该通过返回数组来重新评估您要达到的目标,然后以另一种方式进行。例如。如果要将其另存为csv文件,则可以使用javascript进行。如果需要将其返回给Applescript,则可以使用以下命令将其提取。

Applescript可以从文档中获取文本

tell application "Safari"
    set theText to text of front document
end tell

和HTML

tell application "Safari"
    set theSource to source of front document
end tell

您还可以使用Javascript来修改文档,然后将其解压缩,这样就无需使用applescript对其进行解析。

© www.soinside.com 2019 - 2024. All rights reserved.