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

InDesign UXP插件中page.name返回undefined的原因排查

问题原因

在Adobe InDesign的UXP API中,Page对象没有name属性,这就是调用page.name返回undefined的核心原因。而documentOffset、textFrames等属于Page对象的标准内置属性,因此可以正常获取。

你想要获取的页面自定义名称(即页面面板中可编辑的名称),对应的API属性是page.label。

解决方案

将代码中的page?.name替换为page?.label即可获取页面的自定义名称。如果需要获取系统默认的页面标识(比如“第1页”这类自动生成的名称),可以使用page.displayName属性。

修改后的代码片段:

document.getElementById("collectTextFramesBtn")?.addEventListener("click", async () => {
  try {
    if (!app.documents || app.documents.length === 0) {
      console.warn("⚠️ No document is open.");
      return;
    }

    const doc = app.activeDocument;

    for (let i = 0; i < doc.pages.length; i++) {
      const page = doc.pages[i];
      console.log(`➡️ Iterating page ${i + 1}`);
      console.log("page.label (自定义名称):", page?.label); // 正确获取自定义名称
      console.log("page.displayName (系统默认名称):", page?.displayName); // 获取系统默认显示名称
      console.log("documentOffset:", page?.documentOffset); // works fine
    }

  } catch (err) {
    console.error("❌ Error accessing page data:", err);
  }
});
补充说明
  • 如果页面未设置自定义名称,page.label会返回空字符串,而非undefined。
  • 若要设置页面名称,直接给page.label赋值即可,比如page.label = "封面"。

内容的提问来源于stack exchange,提问作者Omri Developer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:12:11