MacOSX或AppleScript:从Firefox获取当前URL

时间:2011-03-14 09:48:40

标签: macos firefox applescript

如何从Firefox(3或4)获取当前网址?到目前为止我找到的所有解决方案要么不起作用(例如那些"class curl"),要么是丑陋的黑客攻击对我来说没有解决办法(发送按键将URL复制到剪贴板)。

6 个答案:

答案 0 :(得分:5)

好吧,我现在有一个解决方案:我正在从当前的Firefox会话存储中读取它。这有效,但它总是最多10秒过时。

这是代码: https://github.com/albertz/foreground_app_info/blob/master/mac/app-scripts/url%20of%20Firefox.py

答案 1 :(得分:2)

tell application "Firefox" to activate

tell application "System Events"

keystroke "l" using {command down}

keystroke "c" using {command down}

end tell

答案 2 :(得分:2)

如果安装两个组件,很容易:

如果您同时安装了这两个命令,请执行以下命令

perl -MWWW::Mechanize::Firefox -E 'say WWW::Mechanize::Firefox->new(tab=>'current')->base()'

将打印最顶层的活动firefox网址,如:

http://stackoverflow.com/questions/5296995/macosx-or-applescript-get-current-url-from-firefox

答案 3 :(得分:1)

Firefox 3的AppleScript实现非常蹩脚,您不得不求助于将URL复制到“位置”字段之外,如上一篇文章this thread所示。

答案 4 :(得分:0)

窗口的URL不会通过Applescript API公开;甚至不是窗口的标签。你能够获得它的唯一方法是通过GUI脚本。

Firefox的Applescript实现非常糟糕,我不知道为什么他们甚至打扰。

答案 5 :(得分:0)

自 Firefox 87 起,您可以使用本机 AppleScript GUI 脚本来获取当前 URL。那是因为 Firefox 现在有 support for VoiceOver

首先通过转到 about:config 并将 accessibility.force_disabled 属性设置为 -1 来启用 Firefox 对 VoiceOver 的支持。请注意,VoiceOver 不必启用,只需要 Firefox 中的支持即可。 (额外信息见 [2]。)

之后,您可以使用:

tell application "System Events" to get value of UI element 1 of combo box 1 of toolbar "Navigation" of first group of front window of application process "Firefox"

[1]:启用 VoiceOver 支持使 Firefox 公开其窗口的内部结构以用于 GUI 脚本。
[2]:有关额外信息和非永久性选项(通过 AppleScript 切换 AXEnhancedUserInterface),请查看 this bug report