如何从Firefox(3或4)获取当前网址?到目前为止我找到的所有解决方案要么不起作用(例如那些"class curl"
),要么是丑陋的黑客攻击对我来说没有解决办法(发送按键将URL复制到剪贴板)。
答案 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)
如果安装两个组件,很容易:
mozrepl
firefox扩展程序(github)如果您同时安装了这两个命令,请执行以下命令
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。