AppleScript编写Alfred工作流新建Chrome窗口的代码错误排查
AppleScript控制Chrome的Alfred工作流代码修复方案
原代码存在的问题
- 语法结构不合法:AppleScript 标准
if-else分支的结构为if 条件 then → 执行逻辑 → else → 执行逻辑 → end if,原代码错误地将end if放在了else分支之前,还使用了不存在的end else语法,代码首先无法通过编译。 - 运行状态判断逻辑错误:
if it is closed无法正确判断Chrome应用是否处于运行状态,需要直接判断应用进程的运行状态。 - 存在冗余逻辑:调用System Events设置进程前置属于多余操作,Chrome原生的
activate命令已经可以实现窗口前置效果,额外调用还可能触发权限校验报错。
修复后可正常运行的代码
on alfred_script(q) -- 判断Chrome是否未运行 if application "Google Chrome" is not running then tell application "Google Chrome" to activate else -- 已运行则新建窗口并前置 tell application "Google Chrome" make new window activate end tell end if end alfred_script
效果说明
修复后的代码完全符合预期功能:Chrome未启动时直接拉起应用,Chrome已启动时自动新建空白窗口并将窗口置顶,无需额外权限配置,可直接在Alfred工作流中加载使用。
内容的提问来源于stack exchange,提问作者Hasan Tezcan
相关产品推荐
相关产品推荐

