Javascript f[i]。插入点[0]。矩形。添加({geometricBounds:

Javascript f[i]。插入点[0]。矩形。添加({geometricBounds:,javascript,syntax-error,adobe-indesign,Javascript,Syntax Error,Adobe Indesign,我正在为我的问题拼命地寻找解决方案。我需要用这个脚本在InDesign中放置大量的内联图形,但由于某些原因,它不起作用。我对Javascript的知识非常贫乏,我的时间不多了,所以我不能花太多时间研究JS。我正在与约塞米蒂一起在InDesign CC2014 iMac上工作 弹出以下错误消息: 错误捕捉: 如果有人告诉我这件事,我会很高兴的 主要的 主要功能{ 变量名称、f、文件、文本、, arr=[]; ifapp.documents.length!=0{ var doc=app.activ

我正在为我的问题拼命地寻找解决方案。我需要用这个脚本在InDesign中放置大量的内联图形,但由于某些原因,它不起作用。我对Javascript的知识非常贫乏,我的时间不多了,所以我不能花太多时间研究JS。我正在与约塞米蒂一起在InDesign CC2014 iMac上工作

弹出以下错误消息:

错误捕捉:

如果有人告诉我这件事,我会很高兴的

主要的 主要功能{ 变量名称、f、文件、文本、, arr=[]; ifapp.documents.length!=0{ var doc=app.activeDocument; var folder=folder.SelectDialog选择包含图像的文件夹; 如果文件夹!=null{ app.findObjectPreferences=app.changegrepreferences=nothingeum.NOTHING; app.findgrepreferences.findWhat=@.+?@; f=doc.findgrepttrue; 对于i=0;i} 问题是-可能是-因为脚本正在编辑找到的内容并在下一行代码中引用它。 我建议使用反向循环并将f[I].contents=移动到后面的行

比如:

main();

function main() {
var name, f, cF, file, text,
arr = [];

if(app.documents.length != 0) {
    var doc = app.activeDocument;   
    var folder = Folder.selectDialog("Choose a folder with images");

    if (folder != null) {
        app.findObjectPreferences = app.changeGrepPreferences  = NothingEnum.NOTHING;
        app.findGrepPreferences.findWhat = "@.+?@";
        f = doc.findGrep(true);

       while(cF = f.pop()) {
            name = cF.contents.replace(/@/g, "");
            file = new File(folder.fsName + "/" + name);

            if (file.exists) {
                var rect = cF.insertionPoints[0].rectangles.add({geometricBounds:[0,0, 60, 40.667 ]} );
                rect.place ( file );
                rect.fit ( FitOptions.FRAME_TO_CONTENT);
                cF.contents = "";
            }
            else {
                arr.push("File doesn't exist '" + name + "'");
            }
        }

        app.findObjectPreferences = app.changeGrepPreferences  = NothingEnum.NOTHING;

        arr.push("------------------------------------------");
        text = arr.join("\r");
        writeToFile(text);
    }
}
else{
    alert("Please open a document and try again.");
}   
}

function writeToFile(text) {
var file = new File("~/Desktop/Place inline images.txt");
if (file.exists) {
    file.open("e");
    file.seek(0, 2);
}
else {
    file.open("w");
}
file.write(text + "\r"); 
file.close();
}

或者使用try/catch子句。感谢您的回复。是的,这就是问题所在,它无法替换已删除或清空的内容。它帮助很大。