Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MacOSX或AppleScript:从Firefox获取当前URL_Macos_Firefox_Applescript - Fatal编程技术网

MacOSX或AppleScript:从Firefox获取当前URL

MacOSX或AppleScript:从Firefox获取当前URL,macos,firefox,applescript,Macos,Firefox,Applescript,如何从Firefox(3或4)获取当前URL?到目前为止,我找到的所有解决方案要么不起作用(例如那些带有“class curl”),要么是丑陋的黑客,对我来说都不是解决方案(发送按键将URL复制到剪贴板)。窗口的URL不会通过Applescript API公开;甚至连一个窗口的标签都没有。您能够获得它的唯一方法是通过GUI脚本 Firefox的Applescript实现简直糟透了,我不知道他们为什么还要麻烦。好吧,我现在有一个解决方案:我正在Firefox当前的会话存储中读取它。这是可行的,但它

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

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


Firefox的Applescript实现简直糟透了,我不知道他们为什么还要麻烦。

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

代码如下:

Firefox 3的AppleScript实现非常蹩脚,您必须求助于将URL从位置字段中复制出来,如上一篇文章所示。

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

  • mozrepl
    firefox扩展()
  • 和perl模块
如果两个都已安装,请执行以下命令

perl -MWWW::Mechanize::Firefox -E 'say WWW::Mechanize::Firefox->new(tab=>'current')->base()'
将打印最活跃的firefox url,如:

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

你说的GUI脚本是什么意思?我认为AppleScript也主要用于GUI脚本。GUI脚本是AppleScript的一个方面,它允许直接输入控件,如按钮、复选框等。如何为Firefox做到这一点?它不要求应用程序使用Cocoa GUI元素吗?因为我认为FF不使用这些。我自己不做GUI脚本编写,因为我发现它有问题,而且很容易出错,但这里有一个介绍:Firefox应该通过Mac OS X支持这一点,但我不能肯定地告诉你这两种方式。我尝试了类似的方法来查找文本框。对于其他应用程序,我能够获得所有GUI元素(按钮、文本框等)的列表。但对于Firefox,我不是。所以我想这是不可能的。这似乎是唯一可行的选择。系统事件在主窗口空间下看不到任何ui元素。。。我可以诚实地说,这是有史以来最糟糕的applescript支持。好吧,这对我来说是绝对没有选择的。我不想让用户的剪贴板失效。我想大约每10秒检查一次当前的URL。@Powertieke:我正在使用Chrome。但这应该进入一个我想卖给其他用户的应用程序中,我怀疑我是否可以告诉他们“请使用Chrome或Safari而不是Firefox”。也许你可以让python
webbrowser
模块触发一个内联javascript,它可以使用google gears或其他东西与脚本对话?"... 丑陋的黑客攻击对我来说不是解决方案(发送按键将URL复制到剪贴板)“这个解决方案已经在整个网络上重复,至少在当前的快速苹果硬件上,它遭受了一个几乎100%可重复的“竞争条件”,在系统事件发生之前FF不会被激活。它的工作原理是保持一个巨大的延迟(2秒或更长,在我的非正式试验中)介于两者之间,但这是一个接一个的攻击。注意:对于那些不熟悉AppleScript的人来说,所需的延迟语句字面上是“延迟2”。
http://stackoverflow.com/questions/5296995/macosx-or-applescript-get-current-url-from-firefox