【问题标题】:Finding the front Safari window using the ScriptingBridge and Objective-C使用 ScriptingBridge 和 Objective-C 查找前 Safari 窗口
【发布时间】:2012-04-14 00:52:37
【问题描述】:

我正在尝试通过 ScriptingBridge 获取最前面的活动 Safari 窗口(在 Mountain Lion Developer Preview 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

既不使用SafariWindowindex 属性也不使用windows 数组的顺序。

有一个名为“从 Safari 获取当前网页”的 Automator 操作确实有效,所以应该可以,但我不知道如何操作。

【问题讨论】:

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


    【解决方案1】:

    很奇怪你说windows 数组的顺序没有帮助,因为它应该:根据定义,“第一个”窗口是最前面的窗口。此外,Safari 窗口没有 URL;他们有带有 URL 的标签。因此,您只需要这样:

    safari.windows[0].currentTab.URL
    

    【讨论】:

      【解决方案2】:

      你可以使用applescript

      tell application "Safari" to get URL of front document
      

      【讨论】:

      • 是的,但问题是,我需要通过 Scripting Bridge 和 Objective-C 来完成。
      • 你可以使用 NSAppleScript 类。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多