Нахождение переднего окна Safari с помощью ScriptingBridge и Objective-C
Я пытаюсь получить URL самого переднего активного окна Safari (Safari 5.2 работает в Mountain Lion Developer Preview 2) через ScriptingBridge, но не могу найти какое-либо свойство, чтобы определить, является ли окно передним.
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 ответа
Странно, вы говорите, что порядок windows
Массив не помог, потому что он должен: по определению, "первое" окно является передним. Кроме того, окна Safari не имеют URL-адресов; у них есть вкладки, которые имеют URL-адреса. Поэтому все, что вам нужно, это:
safari.windows[0].currentTab.URL
Вы можете использовать яблочный скрипт
tell application "Safari" to get URL of front document