我是新手使用Applescript在Snow Leopard中创建服务。我发现自己经常尝试在Firefox中使用Firefox打开链接。我知道有办法用FF打开页面网址,但我想用FF打开页面内的任何链接。我认为使用Applescript创建服务可能是个好主意,到目前为止我发现了这个:
openFirefoxURL("http://www.apple.com/")
on openFirefoxURL(x)
return do shell script "open -a Firefox" & space & quoted form of x
end openFirefoxURL
这很好地在FF中创建了一个新选项卡。有什么建议可以调整它以打开页面上的链接吗?
更新:我通过反复试验找到了解决方案:
tell application "Safari"
set myURL to (do JavaScript "(getSelection().anchorNode.parentNode.href)" in document 1)
end tell
do shell script "open -a Firefox" & space & myURL
既然剧本符合我的目的,我不知道是否有更好的方法来做到这一点,例如:通过Applescript而不是javascript获取选择。如果您有更好的解决方案,请告诉我。谢谢!
答案 0 :(得分:3)
在网上搜索了一段时间之后,还有另一种方法,我找不到合适的解决方案。
AppleScript中的一项服务将从任何其他应用程序URL字段打开Firefox中的任何URL。例如,只需选择Chrome网址中的文字,然后从列表中选择服务。
创建服务:
选择“输入为”[仅限网址]
然后添加“运行Shell脚本”操作,将其拖到脚本序列中。
for f in "$@"
do
echo "$f"
if [ ${f:0:4} = "http" ]; then
open -a Firefox "$f"
else
prefix="http://"
prefix+=$f
open -a Firefox "$prefix"
fi
done
脚本会检查是否添加了“http”前缀,因为默认情况下Chrome没有通过它,并使用OSX“open”命令打开Firefox。
使用“在Firefox中打开URL”这个名称保存此服务,您就完成了。右键单击任何URL字段选择后,该服务将在服务列表菜单中提供。
完成。
服务保存在〜/ Library / Services。默认情况下,此目录在Lion中隐藏,只需在终端发出此命令:
# chflags nohidden ~/Library/
答案 1 :(得分:2)
您不需要特殊程序来执行此操作。 Safari已经做到了。您必须先在Safari中启用“开发”菜单。转到Safari的首选项,转到高级部分,然后选中底部名为“在菜单栏中显示开发菜单”的框。现在您已经拥有了开发菜单,您可以通过转到Develop - >在其他浏览器中打开Safari中的任何页面。打开页面,带菜单。
这样做会在Firefox中打开当前页面,然后只需点击你想要的任何链接。
答案 2 :(得分:0)
我不确定我是否完全理解您要做的事情,但如果您希望使用Firefox作为默认浏览器,那么您不需要Applescript。只需进入Safari,打开“首选项”,然后选择Firefox作为第一个选项卡顶部的默认浏览器。
答案 3 :(得分:0)
由于Safari的AppleScript字典无法提供任何访问DOM的方法,因此JavaScript解决方案非常好用。如果你有一个服务(“在Firefox中显示URL”),即使所选文本中没有链接,也会让你烦恼,我建议使用Choosy,这是George Brocklehurst的帮助应用程序/首选项窗格,它将提供您是浏览器的用户提示(以及更多,基于模式的选择规则)。 a companion Safari extension提供了您正在寻找的上下文菜单选项。