【发布时间】:2016-06-08 21:39:59
【问题描述】:
我有一个脚本,除其他外,它记录了它在启动时被激活的浏览器窗口。事情发生在中间,然后脚本需要返回到调用它的原始窗口和选项卡。
问题是,用户可能会在脚本运行期间更改活动窗口或选项卡。我想返回调用脚本时使用的窗口和选项卡。
这是我尝试(但失败)的方式:
tell application "Safari"
if (id of front window) is not (windowID of browserInfo)
display dialog "Made it in the block!"
display dialog (get index of window 1)
display dialog (get index of window (windowID of browserInfo))
-- ...
当然,这些对话框都是用于调试的。
现在,browserInfo 是一个对象,其windowID 属性对应于调用脚本的 Safari 窗口。这通常是“889”或“1195”或其他数字。
现在,有趣的是前四行在模拟用户在一个窗口中启动然后激活另一个窗口时正确触发。正如预期的那样,第四行返回“1”。但是第五行报错:Safari got an error: Can't get window 809. Invalid index.
当我只能使用一个 ID 时,如何获取 Safari 窗口的索引?
(是的,URL 和窗口标题是很好的东西,但它们对我的应用程序来说超出了范围。用户可能打开了多个具有相同 URL 和窗口标题的窗口。所以我需要特定的窗口 ID。)
【问题讨论】:
标签: macos scripting window applescript