如何使用AppleScript实现Safari窗口间的切换(Toggle)?
Toggle Between Two Single-Tab Safari Windows with AppleScript
我完全懂你想要的那种无缝切换体验——两个各带一个标签页的Safari窗口,一键来回切。之前试的那些方法没成功确实闹心,这里有个纯原生的AppleScript方案,完美解决这个问题:
tell application "Safari" -- 获取当前处于最前端的窗口 set currentActiveWindow to front window -- 获取所有打开的Safari窗口列表 set allSafariWindows to every window -- 确保当前只有两个窗口(符合你的使用场景) if (count of allSafariWindows) = 2 then -- 判断当前窗口是第一个还是第二个,切换到另一个 if currentActiveWindow = item 1 of allSafariWindows then set frontmost of item 2 of allSafariWindows to true else set frontmost of item 1 of allSafariWindows to true end if end if end tell
为什么这个脚本能生效?
你之前用activate window 1或者activate window 2没成功,核心原因是Safari对activate命令的响应不如直接设置frontmost属性可靠。frontmost是应用窗口的原生属性,设置为true就能直接把窗口带到最前面,完全符合你要的Toggle逻辑。
补充说明
- 这个脚本专门针对你“两个窗口各一个标签页”的场景,判断窗口数量为2才执行切换,避免多窗口时出错。
- 如果之后你偶尔打开更多窗口,但还是想固定切换某两个,也可以给目标窗口加名称标记(比如给窗口重命名),然后通过窗口名称来定位切换,但对你当前的需求来说,上面的脚本已经足够简洁高效。
内容的提问来源于stack exchange,提问作者djbritt
相关产品推荐
相关产品推荐

