我试图检查文档中是否存在对象(或图层)。 如果有一个名为x的pageItem,则此脚本有效。但如果没有,它就会失败。 (到目前为止一直很好)
奇怪的是:即使这个对象命名为" x" A不存在,A返回一个对象。如果我问它的名称,id,索引或脚本由于错误而停止的任何内容。
//Schroedinger's object
A=app.activeDocument.pageItems.itemByName("x")
$.writeln(A) //returns: [object PageItem]
$.writeln(A.id) //Error. doesn't exist
因此,请在InDesign中使用空白的新文档进行试用并运行该脚本。我不明白这种现象。
至少你可以用A.isValid验证它的存在(这就是我现在使用的,希望最好的)
答案 0 :(得分:3)
你的方法是正确的。
.itemByName()
总是返回一个PageItem
对象(假设您传递了一些字符串作为参数)。但只有文档中存在相应的项目时,返回的对象才有效。您应该使用.isValid
属性来验证返回的对象是否有效。