1

我对 AppleScript 一无所知,但我想知道它是否可以让我的生活更轻松:有没有办法编写一个 AppleScript,告诉 Safari / Firefox / Chrome 当我将文档保存在另一个应用程序中时刷新当前选项卡,比如 TextWrangler?本质上,我想映射Command+S键盘快捷键以在两个单独的应用程序中同时做两件事。

如果这不可能,您能否编写一个应用程序的脚本,以便保存一个文件在同一应用程序的另一个窗口中执行命令?

4

2 回答 2

0

实现这一点有多种可能的方法,但最直接的可能是创建一个脚本来执行您需要的所有步骤(即保存文档并刷新窗口)并将其绑定到Cmd+S触发应用程序中的键盘组合。

要使这种方法起作用,您需要按顺序:

  1. 一种将组合键绑定到仅在特定应用程序中有效的脚本的方法OS X 的 Automator 服务符合该要求:它们的范围可以限制为单个应用程序(在工作流操作顶部的“仅在”下拉列表中选择它),并且可以在键盘首选项窗格中为其分配快捷方式系统偏好设置。
  2. 一种将命令中继到它们所针对的应用程序的方法。AppleScript 可以通过两种不同的方式为您提供帮助,具体取决于您的应用程序是否可编写脚本,即它们是否有脚本字典,您可以在 AppleScript 编辑器中检查:

    • 如果他们这样做,并且他们的术语包括一侧的编辑器的保存操作(大多数基于脚本的文档的应用程序都在表单中这样做save <document>),另一侧的浏览器的页面刷新(Chrome 有reload <tab>,Safari 也一样通过 JavaScript 绕道获得结果,即do JavaScript "window.location.reload()" in <document>——我不使用 Firefox),你已经设置好了。
    • 如果他们不这样做,GUI 脚本可能会有所帮助,即通过tell application "System Events" to tell process <your process> to click item x of menu y.

    然后可以将该脚本嵌入到 Automator 工作流程中(准确地说,是在“运行 AppleScript”操作中)。

如您所见,很大程度上取决于您使用的确切软件。如果您是 AppleScript 新手并且上述内容让您感到困惑,我建议您花一些时间在Mac OS X 自动化的 AppleScript 页面上(您还可以在其中找到示例脚本,这些脚本会让您开始学习 GUI 脚本) .

最后一点:在撰写本文时,沙盒应用程序不支持在“键盘首选项”窗格中分配给它们的键组合(它们确实支持在那里设置的全局键组合——而不是那些专门针对它们的组合键)。例如,这意味着您当前无法覆盖 TextEdit 的Cmd+S快捷方式以保存在 Lion 中。只要您的编辑器没有被沙盒化(在活动监视器中很容易检查),您应该对此没有问题。

于 2012-06-15T17:19:36.760 回答
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
于 2012-06-21T18:46:57.110 回答