使用ScriptingBridge和Objective-C查找前Safari窗口

时间:2012-03-30 10:28:17

标签: objective-c cocoa safari automator scripting-bridge

我正在尝试通过ScriptingBridge获取最前面的活动Safari窗口(在Mountain Lion开发人员预览版2中运行的Safari 5.2)的URL,但找不到任何属性来确定窗口是否在前面之一。

SafariApplication *safari = [SBApplication applicationWithBundleIdentifier:@"com.apple.Safari"];
for (SafariWindow *window in safari.windows) {
    if ([window visible]) {
        // Top most, active window?
    }
}

这不起作用 - 如果我有两个打开的Safari窗口,都是visible

既不使用index的{​​{1}}属性也不使用windows数组的顺序。

有一个名为“从Safari获取当前网页”的Automator操作 工作,所以它应该是可能的,但我看不出如何。

2 个答案:

答案 0 :(得分:0)

你可以使用applescript

tell application "Safari" to get URL of front document

答案 1 :(得分:0)

奇怪的是,你说windows数组的顺序没有帮助,因为它应该是:按照定义,"首先"窗口是最前面的。此外,Safari窗口没有​​URL;他们有带有URL的标签。因此,您应该需要的是:

safari.windows[0].currentTab.URL