我对AppleScript一无所知,但我想知道它是否能让我的生活变得更轻松:有没有办法编写AppleScript,告诉Safari / Firefox / Chrome在我将文档保存到另一个应用程序时刷新当前标签,比如说的TextWrangler?基本上,我想映射 Command + S 键盘快捷键,在两个独立的应用程序中一次完成两件事。
如果那是不可能的,你可以编写一个应用程序脚本,以便保存一个文件在同一个应用程序的另一个窗口中执行一个命令吗?
答案 0 :(得分:0)
有不同的可能方法来实现这一点,但最直接的可能是创建一个脚本来执行您需要的所有步骤(即保存文档并刷新窗口)并将其绑定到 Cmd + S 触发应用程序中的键盘组合。
这种工作方法需要的是:
将命令转发到目标应用的方法。 AppleScript可以通过两种不同的方式为您提供帮助,具体取决于您的应用程序是否可编写脚本,即如果它们具有您可以在AppleScript编辑器中检查的脚本字典:
save <document>
的形式这样做),另一方面为浏览器刷新页面(Chrome有reload <tab>
,Safari通过JavaScript绕道获得相同的结果,即do JavaScript "window.location.reload()" in <document>
- 我不使用Firefox),你已经设置好了。tell application "System Events" to tell process <your process> to click item x of menu y
模拟右侧UI元素(菜单或工具栏)上的点击。然后可以将该脚本嵌入到Automator工作流程中(准确地说,在“运行AppleScript”操作中)。
正如您所看到的,很大程度上取决于您使用的确切软件。如果你是AppleScript的新手并且以上困扰你,我建议你花一点时间在the AppleScript pages of Mac OS X Automation上(在那里你也会找到一些示例脚本,这些脚本会让你开始使用GUI脚本等)。
最后一点说明:截至撰写本文时,sandboxed applications do not honor key combos assigned to them in the Keyboard Preference pane(他们确实尊重全球关键组合设置 - 只是没有专门针对它们的那些)。这意味着您不能,例如,当前覆盖TextEdit的 Cmd + S 快捷方式,以便在Lion中保存。只要您的编辑器没有沙盒(在活动监视器中轻松检查),您应该没有问题。
答案 1 :(得分:0)
一种解决方案是创建一个文件夹操作,以便在文件夹中保存新文件时刷新当前选项卡。
on adding folder items to theFolder after receiving theFiles
tell application "Google Chrome"
activate
tell window 1 to tell active tab
set URL to (get URL)
end tell
end tell
end adding folder items to