2011-05-24 51 views

回答

11

代码:

NSAppleScript *script= [[NSAppleScript alloc] initWithSource:@"tell application \"Safari\" to return URL of front document as string"]; 
NSDictionary *scriptError = nil; 
NSAppleEventDescriptor *descriptor = [script executeAndReturnError:&scriptError]; 
if(scriptError) { 
    NSLog(@"Error: %@",scriptError); 
} else {   
    NSAppleEventDescriptor *unicode = [descriptor coerceToDescriptorType:typeUnicodeText]; 
    NSData *data = [unicode data]; 
    NSString *result = [[NSString alloc] initWithCharacters:(unichar*)[data bytes] length:[data length]/sizeof(unichar)]; 
    NSLog(@"Result: %@",result); 
} 

输出:

Result: http://stackoverflow.com/questions/6111275/how-to-copy-the-current-active-browser-url/6111592#6111592 
+0

我很高兴它工作:) – Anne 2011-05-24 14:19:59

+1

对于Chrome,使用上面的代码,但用下面的代码替换applescript:“告诉应用程序谷歌浏览器”获取前窗活动标签的URL作为字符串“ 。 – ThomasW 2011-05-24 14:29:39

+0

不幸的是Firefox AppleScript支持早已被破解:https://bugzilla.mozilla.org/show_bug.cgi?id=125419 – ThomasW 2011-05-24 14:32:31

1

如果浏览器在其字典中公开这些信息,我认为这将通过Applescript来完成。

以下网址给出了如何从Objective-C的调用AppleScript的一些有用的例子: Objective-C & Applescript

+0

确实在Windows AppleScript的运行或linux。我认为它只适用于MAC – 2016-05-30 12:32:37

相关问题