与 Gmail 允许的方式类似,我希望自动加载特定发件人的远程图像。
我遇到的一个选项是使用规则和 applescript:https://discussions.apple.com/thread/2405934
然而,这似乎不起作用(至少在当前的 10.7.3 上 - 该解决方案有点过时)
有什么想法可以修复这个 applescript,或者,用另一种方法来实现期望的最终结果?
答案1
你已经被脆弱所咬伤GUI 脚本解决方案——即它们对目标应用程序的 UI 元素层次结构的依赖。在 Mail.app 的案例中,这个层次结构随着 Lion 的出现而发生了相当大的变化(这并不奇怪,因为 Lion 的 Mail.app 是早期版本的一次相当大的更新)。“加载图像”按钮的正确 UI 地址现在是
button 1 of UI element 1 of row 1 of table 1 of scroll area 1 of window
由于这有点难以理解,我建议修改原始脚本以对引用进行操作,并更改核心 GUI 脚本命令,如下所示:
set loadButton to a reference to button 1 of UI element 1 of row 1 of table 1 of scroll area 1 of front window
if loadButton exists then click loadButton
但请注意,这实际上并没有重现 Gmail 的行为– 它只会在查看器窗口中打开所有符合规则条件的邮件,并显示内联服务器图像每次运行规则时。它不会影响内联消息显示(在消息预览栏中),也不会在您自己在新窗口中打开消息时应用。除非编写您自己的 Mail.app 插件,否则您对此无能为力,因为 Mail.app 提供的唯一可以使用 AppleScript 挂接的事件处理机制是执行规则。