我正在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
变量?
您无法返回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对其进行解析。