我构建了一个 [widget] [1] ,它从Safari中最前面的窗口抓取URL,然后允许您使用tr.im API缩短它。工作甜美。
我想让它更灵活,所以我正在调查如何从其他浏览器中获取URL。这是在Safari中运行的AppleScript:
tell application "Safari"
return URL of front document as string
end tell
在some digging之后,我确定以下可能适用于Firefox(虽然有人告诉我它对他不起作用,可能与某些扩展冲突?):
tell application "Firefox"
set myFirefox to properties of front window as list
return item 3 of myFirefox
end tell
注意:上面是一个不太好的做法的例子,依赖于列表项的位置。请参阅下文以获得更好的Firefox解决方案。
我想要做的是在这里建立一个列表,列出Mac上每个现代浏览器的最终等价物:Opera,Camino,Flock等。
更新:在我对该主题的研究中,我在MacOSXHints.com上遇到了一个有用的帖子。我下面的大多数答案都是基于这个讨论。
更新2:我已将此页面上的AppleScript合并到[widget] [1]中。它似乎在起作用。
答案 0 :(得分:3)
激活UI脚本并运行以下代码。然后,您将在剪贴板中显示该URL,然后将其粘贴。
tell application "Firefox" to activate
tell application "System Events"
keystroke "l" using command down
keystroke "c" using command down
end tell
答案 1 :(得分:3)
Google Chrome for Mac添加了AppleScripting方法来获取网址。
https://sites.google.com/a/chromium.org/dev/developers/design-documents/applescript
tell application "Google Chrome"
get URL of active tab of window 1
end tell
http://laclefyoshi.blogspot.com/2010/10/google-chrome-ver.html
答案 2 :(得分:2)
Firefox(在版本2.0.0.14和3.0.1上测试):
tell application "Firefox"
set myURL to «class curl» of window 1
return myURL
end tell
答案 3 :(得分:2)
目前Firefox 3.03中存在一个错误,如果您之前使用过以下语句,它将隐藏AppleScript的所有窗口属性,包括«class curl»:
tell application "Firefox" to activate
或
tell application "Firefox"
if (front window) exists then do_something()
end tell
解决方法是使用以下代码:
tell application "System Events"
tell process "Firefox"
set frontmost to true
set xsist to (front window) exists
(* keep xsist value to test later on *)
end tell
end tell
注意:在下次重启Firefox之前,该窗口的属性仍然无法使用
答案 4 :(得分:2)
这是皮耶罗再次带着一个新的身份证(我在尝试重新安装Firefox时丢失了我的曲奇!)。
我刚试过Firefox 3.04没有改变AppleScript的支持和可靠性。 还是一样的错误...
我的测试和网上搜索,让我得出结论,你无法在同一个脚本中访问窗口的名称和窗口的其他属性,例如“class curl”。
如果您正在使用窗口的名称,那么,突然之间,您无法再访问它(获取随机二进制文件如字符串),您必须再次调用此代码:
tell application "Firefox" to activate
使用任何会在Firefox中生成错误的语句也可以正常工作,使窗口名称再次可用,但重新启动Mac不会改变任何内容!
一旦你完成了,正如我之前提到的那样,你再也无法访问«class curl»了,直到下一次Firefox重启......
在Mac上为Firefox编写脚本真是不可能完成任务!
如果你想在Firefox上支持AppleScript,请告诉它,并投票支持这个错误!!!
答案 5 :(得分:1)
Camino 1.6及以上:
tell application "Camino"
return URL of current tab of front browser window as text
end tell
与之前的答案不同,这将获得焦点标签的网址。
答案 6 :(得分:1)
感谢上面的Brian,这是防弹版本。
他的代码要求您粘贴URL,但是这个URL将URL设置为“FrontDocumentURL”,然后您可以将其用作脚本中的变量。
tell application "Firefox" to activate
tell application "System Events"
keystroke "l" using command down
keystroke "c" using command down
end tell
set FrontDocumentURL to the clipboard
答案 7 :(得分:0)
Opera(在版本9.21和9.62上测试):
tell application "Opera"
return URL of front document as string
end tell
答案 8 :(得分:0)
Camino(在1.6.4版本上测试):
tell application "Camino"
set p to properties of front tab of front window
return |currentURI| of p as string
end tell
答案 9 :(得分:0)
Flock(在2.0版上测试):
tell application "Flock"
set p to properties of front window as list
return item 3 of p
end tell
这取决于列表项的位置,但据我所知,这是获得此值的唯一方法。该属性名为address
,尽管Apple的文档没有这样说,但它似乎是AppleScript中的保留字。
答案 10 :(得分:0)
OmniWeb(在5.8版本上测试):
tell application "OmniWeb"
set myInfo to GetWindowInfo
return item 1 of myInfo
end tell