2012-03-30 12 views
1

Ich versuche, die URL des vordersten, aktiven Safari-Fensters (Safari 5.2 läuft in Mountain Lion Developer Preview 2) durch die ScriptingBridge zu bekommen, kann aber t Finden Sie eine Eigenschaft, um zu bestimmen, ob das Fenster das vordere ist.Suchen des vorderen Safari-Fensters mit ScriptingBridge und Objective-C

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

Dies funktioniert nicht - wenn ich zwei offene Safari-Fenster haben, sind beide visible.

Weder tut die index Eigenschaft der SafariWindow noch die Reihenfolge der Windows-Array.

Es gibt eine Automator-Aktion namens "Holen Sie sich die aktuelle Webseite von Safari", die funktioniert funktioniert, so sollte es möglich sein, aber ich kann nicht sehen, wie.

Antwort

0

Sie können Apple

tell application "Safari" to get URL of front document 
+0

Ja, aber die Sache ist, ich muss es über die Scripting Bridge und in Objective-C tun. –

+0

können Sie die NSAppleScript-Klasse verwenden. –

0

Es ist seltsam, Sie sagen, dass die Reihenfolge der windows Array verwenden nicht helfen, weil es angenommen hat, auf: per Definition die „erste“ Fenster das vorderste ist. Safari-Fenster haben keine URLs. Sie haben Registerkarten mit URLs. Daher sollten Sie nur Folgendes benötigen:

safari.windows[0].currentTab.URL