Поиск переднего окна Safari с помощью ScriptingBridge и Objective-C - PullRequest
1 голос
/ 30 марта 2012

Я пытаюсь получить URL самого переднего, активного окна Safari (Safari 5.2 работает в Mountain Lion Developer Preview 2) через ScriptingBridge, но не могу найти какое-либо свойство, чтобы определить, является ли окно переднимone.

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

Это не работает - если у меня два открытых окна Safari, оба имеют значение visible.

Не используется ни свойство index SafariWindow, ни порядок массива windows.

Существует действие Automator, называемое «Получить текущую веб-страницу из Safari», которое работает, так что это должно быть возможно, но я не понимаю, как.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2014

Странно, что вы говорите, что порядок массива windows не помог, потому что он должен: по определению, «первое» окно - самое переднее. Кроме того, окна Safari не имеют URL-адресов; у них есть вкладки, которые имеют URL-адреса. Поэтому все, что вам нужно, это:

safari.windows[0].currentTab.URL
0 голосов
/ 30 марта 2012

Вы можете использовать яблочный скрипт

tell application "Safari" to get URL of front document
...