为什么在此AppleScript上出现语法错误,以重新加载Safari中的所有标签?

时间:2019-02-12 16:24:25

标签: safari tabs applescript reload

我复制了以下脚本以重新加载Safari会话中的所有选项卡时遇到错误。

tell application "Safari"
    set a to tabs of the front window
    repeat with x in a
        set docUrl to URL of x
        set URL of x to docUrl
    end repeat
end tell

错误消息是“ Safari出现错误:无法在文本类型中输入缺少的值。”

错误似乎在“将x的URL设置为docUrl”行上

这是我第一次尝试使用AppleScript进行编码,因此请原谅任何愚蠢的错误。

谢谢。

2 个答案:

答案 0 :(得分:1)

尽管标签显示有效数据,但标签的URL属性可能返回missing value

重新加载所有标签页的更可靠方法是JavaScript行

tell application "Safari"
    set allTabs to tabs of the front window
    repeat with aTab in allTabs
        tell aTab to do JavaScript "location.reload();"
    end repeat
end tell

答案 1 :(得分:0)

如果您有几个打开了多个选项卡的窗口,则此方法将起作用。使用最新版本的macOS Mojave,这对我有效

tell application "Safari"
    set theTabs to every document
    repeat with eachTab in theTabs
        tell eachTab to set URL to (get URL)
    end repeat
end tell