javascript - 在 InDesign javascript 中使用变量更改文本

标签 javascript replace find adobe-indesign

我试图找到事件页面上的所有“#”并将它们更改为数字,即。 1、2、3。 。 .

下面的代码是我认为可行的,但事实并非如此。相反,它将每个“#”更改为“0”。

app.findTextPreferences = app.changeTextPreferences = NothingEnum.NOTHING;
app.findTextPreferences.findWhat = "#";

var finds = app.activeDocument.findText();
if (finds.length > 0) {
   for (var i = 0; i < finds.length; i++)  
   {  
      app.changeTextPreferences.changeTo = "no: " + i;
      app.activeDocument.changeText();
   }  
   else
   {
      alert("Nothing has been found");
   }
}

最佳答案

正如 ali haydar 所说,changeText 将全局应用,并将打破以前的 findText 文本引用。您需要的是在循环中使用内容属性。

app.findTextPreferences = app.changeTextPreferences = NothingEnum.NOTHING;
app.findTextPreferences.findWhat = "#";

var finds = app.activeDocument.findText();
if (finds.length > 0) 
{
    for (var i = 0; i < finds.length; i++)  
    {  
      finds[i].contents = "no: " + String(i);
    }  
}
else
{
alert("Nothing has been found");
}

关于javascript - 在 InDesign javascript 中使用变量更改文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36449536/

相关文章:

javascript - URL 不是 Node.js 的函数

jquery - 替换 <br> 后的文字

linux - 查找命令在 centOS 中没有按预期工作

javascript - 为什么我的 Bootstrap 按钮在窗口缩小时重叠

javascript - 具有正确行号的 console.log 的正确包装器?

javascript - 简单的正则表达式问题: Replacing words with '?' s

c# - 我如何使用 .MatchCase 和 .WholeWord?

linux - 使用 daystart 和 mmin 查找命令

javascript - 没有结果的 Firebase 数据库

javascript - 使用 Safari 扩展替换页面加载前的请求 URL