AppleScript:当我在其他桌面空间时,如何重新加载Safari窗口而不将窗口置于前台

时间:2014-01-04 19:08:52

标签: applescript

我想编写AppleScript来完成一项简单的任务。也就是说,我打开桌面1上的Safari窗口,每隔30分钟自动重新加载浏览器,同时我在桌面2上进行日常工作。

这是我的剧本:

tell application "Safari"
    activate
    tell application "System Events"
        tell process "Safari"
            keystroke "r" using {command down}
        end tell
    end tell
end tell

此脚本有效。但是,无论何时执行脚本,我的当前桌面2都将被带回桌面1.这会分散我的工作流程。

有没有办法让Safari在后台重新加载而不将Safari窗口带到桌面1上的前景?

我做了几次搜索;他们中的许多人说我不应该在我的剧本中使用“激活”。我试过了,但后来剧本什么都不做。

1 个答案:

答案 0 :(得分:2)

您只需获取文档1 网址,然后告诉Safari设置文档1的网址 到那个网址。

效果是页面将重新加载。当你在另一个空间时,不用将Safari带到前面或跳到Safari。

    tell application "Safari"
    set docUrl to URL of document 1

    set URL of document 1 to docUrl
end tell

也是一个简单的空闲处理程序并保存为应用程序(保持打开状态),每隔1分钟运行一次,但在Safari最重要时不运行。即实际使用时。

on idle

    set frontApp to name of application (path to frontmost application as text)

    if frontApp is not equal to "Safari" then
        tell application "Safari"
            set docUrl to URL of document 1

            set URL of document 1 to docUrl
        end tell

    end if
    return 60
end idle