You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Photoshop脚本中打开嵌入智能对象时屏蔽‘解析缺失资源’对话框

如何在Photoshop脚本中屏蔽嵌入智能对象的“Resolve Missing Assets”对话框

问题背景

我需要通过JavaScript脚本在Photoshop 2022中打开包含损坏库链接的嵌入智能对象,但要屏蔽弹出的“Resolve Missing Assets”对话框——我不关心缺失的链接,也不能让脚本因手动关闭对话框而被阻塞。

当前代码及遇到的问题

我的核心代码如下(省略文件类型验证):

app.displayDialogs = DialogModes.NO;

//...

if (layer.kind == LayerKind.SMARTOBJECT) {
    try {
        executeAction(stringIDToTypeID("placedLayerEditContents"), new ActionDescriptor(), DialogModes.NO);
        // <- 此处仍会弹出对话框,脚本执行被阻塞,关闭对话框后无异常可捕获
    } catch(e) {
        alert(e);
    }
}

代码其他部分正常,但Photoshop完全忽略了DialogModes.NO参数和全局的displayDialogs设置。用try/catch包裹也没用,因为解析链接资源的异常被Photoshop进程直接处理,在executeAction返回前就弹出了“重新链接”对话框。

调用app.runMenuItem的效果完全一致:

app.runMenuItem(stringIDToTypeID('placedLayerEditContents'));

我试过查询打开的对话框并发送取消/ESC命令,但这个对话框会阻塞进程,脚本在手动关闭它之前根本无法感知其存在——比如打开智能对象后立即执行的alert要等对话框关闭才会显示。

求助需求

目前只在Adobe社区找到一个描述相同问题但未彻底解决的旧帖子,没找到有效方案。如果没有直接屏蔽对话框的方法,也接受能缓解问题的“创新”方案,前提是不能破坏智能对象内容(即不能栅格化/拼合)。比如异步轮询对话框是否存在、添加对话框创建监听器这类思路,但我PS脚本经验有限,不知道怎么实现。

注意:我处理的是嵌入智能对象,不是链接智能对象,打开前没有对应的物理文件支撑(操作逻辑类似双击智能对象图层预览缩略图,或右键选择“编辑内容”)。

内容的提问来源于stack exchange,提问作者Stelio Kontos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 20:06:22